在某种情况下,我想测试应用程序进行函数调用以发送电子邮件,然后调用System.exit(0)
这是一个Java应用程序,Mockito正在用于模拟。
我的测试目前看起来像这样:
testSendsEmailInScenario() {
// set up
foo.bar(mock);
ArgumentCaptor<HashMap> argument = ArgumentCaptor.forClass(HashMap.class);
verify(mockEmailDeliveryManager).send(argument.capture());
Map<String,String> argMap = argument.getValue();
// Test that map contains the right stuff
}
所以这不起作用,因为在应用程序中调用send
之后,调用了System.exit()
,这将终止测试而不会使测试成功或失败。
由于exit()
是System
的静态方法,我不能用Mockito来嘲笑它。那么我该怎么做:
System.exit()
时成功的测试,否则失败。)答案 0 :(得分:1)
我使用以下非常简单的场景:我使用Groovy - MockFor可以保证调用某些方法。我试过,它甚至适用于System类。