0
我有以下方法:Junit的测试迫使例外
public Object method(){
try
{
privatevoidmethod1();
privatevoidmethod2();
}
catch(Exception e)
{
Log.debug(e);
}
return object;
}
如何强制异常,所以我可以测试调试电话吗?
我有以下方法:Junit的测试迫使例外
public Object method(){
try
{
privatevoidmethod1();
privatevoidmethod2();
}
catch(Exception e)
{
Log.debug(e);
}
return object;
}
如何强制异常,所以我可以测试调试电话吗?
撇开如何测试调试调用,通常会通过提供合适的输入来触发异常,以便创建/抛出异常。如果这不合适,则替代方案是提供已经被配置/写入以引发异常的替代(模拟)组件,例如
public MyClass(MyInjectedComponent component) {
this.component = component;
}
,你会为你的测试MyInjectedComponent
的实现,将抛出一个异常(用于测试目的)。将组件注入其他组件的方法称为dependency injection,值得研究。
我通常会为此使用一个模拟框架(例如Mockito或类似的)。然而,上述的一个微不足道的实现可能是:
public class MyImplementationForTesting extends MyInjectedComponent {
public void method() throws Exception {
throw new Exception();
}
}
我有一个测试,引发异常,我可以成功地断言它。但是如果我需要声明日志声明被调用呢? – sotn 2015-06-13 07:07:20
我会模拟记录组件并注入它 – 2015-06-13 11:38:36