Junit测试强制异常

时间:2015-03-31 14:51:45

标签: exception logging junit

我有以下方法:

public Object method(){
 try
 {
      privatevoidmethod1();
      privatevoidmethod2();
 }
 catch(Exception e)
 {
      Log.debug(e);
 }
  return object;
}

如何强制异常以便我可以测试调试调用?

1 个答案:

答案 0 :(得分:3)

不管您如何测试调试调用,您通常会通过提供合适的输入来触发异常,以便创建/抛出异常。如果这不合适,那么另一种方法是提供一个替代(模拟)组件,该组件已被配置/编写以抛出异常,例如。

public MyClass(MyInjectedComponent component) {
   this.component = component;
}

并且您为测试提供了MyInjectedComponent的实现,该实现将抛出异常(用于测试目的)。将组件注入其他组件的方法称为dependency injection,值得研究。

我通常会使用模拟框架(例如Mockito或类似)。然而,上述的一个微不足道的实现可能是:

public class MyImplementationForTesting extends MyInjectedComponent {
   public void method() throws Exception {
      throw new Exception();
   }
}
相关问题