У меня относительно простой модульный тест для тестирования статического метода в моем java-приложении.
@Test(expected=MyException.class)
public void testGetWeightedGradeWithWeightSumLessThan100(){
Pair<Integer, Double> gradeOne = Pair.of(10, 80.00);
Pair<Integer, Double> gradeTwo = Pair.of(25, 90);
@SuppressWarnings({"unchecked", "unused"})
double weightedGrade = GradeUtils.getWeightedGrade(gradeOne, gradeTwo);
}
Это прекрасно работает, и мой тест проходит, как и ожидалось.Однако мне не нужно присваивать вывод getWeightedGrade
переменной, так как я ожидаю, что при запуске метода будет сгенерировано исключение.Итак, я попытался обновить модульный тест следующим образом:
@Test(expected=MyException.class)
public void testGetWeightedGradeWithWeightSumLessThan100(){
Pair<Integer, Double> gradeOne = Pair.of(10, 80.00);
Pair<Integer, Double> gradeTwo = Pair.of(25, 90);
@SuppressWarnings({"unchecked", "unused"})
GradeUtils.getWeightedGrade(gradeOne, gradeTwo);
}
Это вызывает ошибку компилятора:
GradeUtils.getWeightedGrade cannot be resolved to a type.
Когда я перемещаю аннотацию suppressWarnings вне тела метода, он компилируетсяхорошо.
@Test(expected=MyException.class)
@SuppressWarnings({"unchecked", "unused"})
public void testGetWeightedGradeWithWeightSumLessThan100(){
Pair<Integer, Double> gradeOne = Pair.of(10, 80.00);
Pair<Integer, Double> gradeTwo = Pair.of(25, 90);
GradeUtils.getWeightedGrade(gradeOne, gradeTwo);
}
Это не имеет большого значения, мне просто интересно, почему он не компилируется при удалении объявления переменной.
Спасибо