Consumer
객체를 인수로 사용하는 AssertJ assertions
는 그 자체가 assertions
로 표현되어야 하는 requirements
를 포함할 것으로 예상됩니다. 다음 열거되는 함수가 이에 해당됩니다: allSatisfy, anySatisfy, hasOnlyOneElementSatisfying, isInstanceOfSatisfying, noneSatisfy, satisfies, satisfiesAnyOf, zipSatisfy.
이 함수들은 Consumer
가 assertions
를 직접 수행한다고 가정합니다. 만약 Consumer
가 어떤 assertion
도 수행하지 않는다면, 아마도 객체를 부분적으로만 테스트하고 있음을 의미합니다.
이 룰은 위의 함수 중 하나에 대한 Consumer
인수에 assertion
가 포함되어 있지 않은 경우 알려줍니다.
규칙을 어긴 코드
assertThat(myObject).isInstanceOfSatisfying(String.class, s -> "Hello".equals(s)); // 규칙을 어긴 코드 - 문자열 값을 테스트하지 않았습니다.
assertThat(myObject).satisfies("Hello"::equals); // 규칙을 어긴 코드 - 문자열 값을 테스트하지 않습니다.
규칙을 준수한 해결책
assertThat(myObject).isInstanceOfSatisfying(String.class, s -> assertThat(s).isEqualTo("Hello"));
assertThat(myObject).satisfies(obj -> assertThat(obj).isEqualTo("Hello"));
If you like SONARKUBE, don’t forget to give me a star.