如何在unmocked类中模拟异常

时间:2015-08-13 19:17:25

标签: java spring unit-testing mocking

这是我测试类的基础:

public class MyClass {
  public void myMethod() {
    if (condition) {
      Message message = null;
      throw new MyException(message.getMessgae()); // throws NullPointerException
    }
  }
}

我想测试类,myMethod是否抛出MyException。 message在测试实例中为null,因为在另一个使用实例中,spring bean来自属性文件,其中value存在。 因为消息返回NullPointerException,所以myTest没有传递:

public class MyClassTest {
  @Test
  public void testMyMethod() {
    try {
      MyClass myClass = new MyClass();
      myClass.myMethod();
      fail;
    } catch(MyException e) {
    }
  }
}

如果可能的话,我的想法是创建模拟MyException或crate mock of message.getMessgae()。我不知道怎么......

1 个答案:

答案 0 :(得分:0)

我认为您希望使用 PowerMockito 来模拟MyException中使用的MyException(message.getMessage())的参数化构造函数,以便构造函数实际上不会尝试调用{{1}在null对象上。

详细解释了here