У меня проблемы с проблемами поднятия Sonarqube с несколькими из моих модульных тестов, что вызвало следующую проблему: < /p>
Добавить хотя бы одно утверждение к этому тестору. Утверждения, чтобы избежать дублирования): < /p>
@Test
public void companyNameOneTooLong() throws Exception {
AddressFormBean formBean = getValidBean();
formBean.setCompanyNameOne("123456789012345678901234567890123456");
assertViolation(validator.validate(formBean), "companyNameOne", "length must be between 0 and 35");
}
private void assertViolation(Set violations, String fieldname, String message) {
assertThat(violations, hasSize(1));
assertEquals(fieldname, violations.iterator().next().getPropertyPath().iterator().next().getName());
assertEquals(message, violations.iterator().next().getMessage());
}
< /code>
Теперь, очевидно, я мог бы просто вытащить три утверждения из частного метода и поместить их в метод испытания - но я выполняю одни и те же проверки (в разных полях) несколько раз. < /p>
Итак, я подумал, что пытаюсь имилировать поведение методов утверждения, с помощью (re), выбросив Assertionerer, код>: p>: p> pertioner (Pertionerer pertioner). />
private void assertViolation(Set violations, String fieldname, String message) throws AssertionError {
try {
assertThat(violations, hasSize(1));
assertEquals(fieldname, violations.iterator().next().getPropertyPath().iterator().next().getName());
assertEquals(message, violations.iterator().next().getMessage());
} catch (AssertionError e) {
throw e;
}
}
< /code>
К сожалению, этот подход тоже не работает. < /p>
Что особенное в методах Assert Junit /Что такое Sonarqube ищет конкретно, чтобы проверить, что для каждого теста было сделано утверждение?>
Подробнее здесь: https://stackoverflow.com/questions/387 ... t-test-wit