例如,我有一个方法,我想在它抛出某个异常类型时测试用例。 MyException
类中没有没有参数的构造函数。
public class Clazz {
private Service service;
public void method() {
try {
int result = service.perform();
} catch (MyException exc) {
throw exc;
}
}
}
我为服务创建了mock并将其设置为Clazz实例。
@Before
public void setUp() {
clazz = new Clazz();
service = createStrictMock(Service.class);
clazz.setService(service);
}
测试应该如何?我的意思是method
的测试方法应该是什么样的?
答案 0 :(得分:0)
尝试:
expect(service.perform()).andThrow(new MyException(/* some params */));
有关详细信息,请转到documentation(使用例外情况)或this thread
因为您需要重新抛出异常,所以您可能还想将@Test(expected=MyException.class)
添加到测试方法中。
答案 1 :(得分:0)
您可以使用以下内容(假设@setup
有效)
@Test(expected = MyException.class)
public void testExceptionThrown() throws Exception(){
Clazz subject = new Clazz();
subject.setService(service);
subject.method();
}