Проблема в том, что вы объявляете Exception
, как ожидается, в аннотации .Это поведение во время выполнения , как определено JUnit.Ваш код должен все еще соответствовать всем нормальным правилам Java во время компиляции.В соответствии с обычными правилами Java, когда метод генерирует проверенное исключение, вы должны либо 1) пометить его как выброшенный в сигнатуре метода, либо 2) перехватить его и обработать его.Ваш код не делает ни того, ни другого.Для вашего теста вы хотите выполнить первое, чтобы JUnit не сработал:
public class QuickTest extends TestCase
{
@Test(expected = Exception.class)
public void test() throws Exception {
throwsException();
}
}
Или вы можете изменить Exception
на RuntimeException
в обоих случаях, так что это непроверенное исключение (т.е. не подлежитпо тем же правилам).