테스트 함수는 너무 많은 assertion을 포함하면 안됩니다.

 

일반적인 모범 사례는 오직 한가지의 이유로 실패하는 하나의 논리적 개념을 타겟팅하는 테스트 함수를 작성하는 것입니다.

하나의 개념을 테스트하기 위해 하나 이상의 assertion을 가지는게 타당할 수 있지만, 너무 많은 assertion을 갖는 것은 테스트가 너무 복잡해졌다는 신호이므로 여러 개로 리팩터링해야 합니다.

이 규칙은 테스트 함수가 지정된 assertion 개수보다 더 많이 포함하고 있을 때 알려줍니다.

규칙을 어긴 코드

파라미터가 2 입니다.

@Test
void test() { // 이 함수를 리팩터링 해보세요.
    assertEquals(1, f(1));
    assertEquals(2, f(2));
    assertEquals(3, g(1));
}

규칙을 준수한 코드

void test_f() {
    assertEquals(1, f(1));
    assertEquals(2, f(2));
}
void test_g() {
    assertEquals(3, g(1));
}

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project