"Consumer" 인수를 사용하는 "AssertJ assertions"는 Consumer 인터페이스 안에 "assertion"을 포함해야 합니다.

 

Consumer 객체를 인수로 사용하는 AssertJ assertions는 그 자체가 assertions로 표현되어야 하는 requirements를 포함할 것으로 예상됩니다. 다음 열거되는 함수가 이에 해당됩니다: allSatisfy, anySatisfy, hasOnlyOneElementSatisfying, isInstanceOfSatisfying, noneSatisfy, satisfies, satisfiesAnyOf, zipSatisfy.

이 함수들은 Consumerassertions를 직접 수행한다고 가정합니다. 만약 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. :star2:

원문으로 바로가기

Star This Project