Assertion 인수 올바른 순서로 통과돼야 합니다.

 

org.junit.Assert.assertEquals, org.junit.Assert.assertSame와 같은 표준 assertion 라이브러리 함수는 첫번째 인자에 예상되는 값을 넣고 두번째 인자에 실제 값을 넣을 것이라고 기대합니다.

AssertJ에서는 다른 방식으로 동작합니다. org.assertj.core.api.Assertions.assertThat의 첫번째 인자는 실제 값이며 두번째 인자는 예상되는 값을 넣습니다. 인자에 값이 바뀌는 경우 테스트는 성공과 실패에 대해 동일한 결과를 갖지만, 에러메세지는 혼란을 줄 수 있습니다.

이 규칙은 Assertion 라이브러리 함수에 대한 실제 값 인수가 하드 코딩된 값이고 예상된 인수가 하드 코딩된 값이 아닐 때 문제를 제기합니다.

지원하는 프레임워크:

규칙을 어긴 코드

org.junit.Assert.assertEquals(runner.exitCode(), 0, "Unexpected exit code");  // 규칙을 어긴 코드; 다음과 같이 에러메세지가 주어집니다: Expected:<-1>. Actual:<0>.
org.assertj.core.api.Assertions.assertThat(0).isEqualTo(runner.exitCode()); // 규칙을 어긴 코드

규칙을 준수한 코드

org.junit.Assert.assertEquals(0, runner.exitCode(), "Unexpected exit code");
org.assertj.core.api.Assertions.assertThat(runner.exitCode()).isEqualTo(0);

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

원문으로 바로가기

Star This Project