org.junit.Assert.assertEquals
, org.junit.Assert.assertSame
와 같은 표준 assertion 라이브러리 함수는 첫번째 인자에 예상되는 값을 넣고 두번째 인자에 실제 값을 넣을 것이라고 기대합니다.
AssertJ에서는 다른 방식으로 동작합니다. org.assertj.core.api.Assertions.assertThat
의 첫번째 인자는 실제 값이며 두번째 인자는 예상되는 값을 넣습니다. 인자에 값이 바뀌는 경우 테스트는 성공과 실패에 대해 동일한 결과를 갖지만, 에러메세지는 혼란을 줄 수 있습니다.
이 규칙은 Assertion 라이브러리 함수에 대한 실제 값 인수가 하드 코딩된 값이고 예상된 인수가 하드 코딩된 값이 아닐 때 문제를 제기합니다.
지원하는 프레임워크:
- JUnit4
- JUnit5
- AssertJ
규칙을 어긴 코드
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.