【问题标题】:How to mock exception in unmocked class如何在非模拟类中模拟异常
【发布时间】:2015-11-06 22:04:15
【问题描述】:

这是我测试类的基础:

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

我想测试类结束,myMethod 是否抛出 MyException。测试实例中的消息为空,因为在另一个使用实例中,来自属性文件的spring bean,其中存在值。 因为消息返回 NullPointerException,所以 myTest 没有通过:

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

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

【问题讨论】:

  • 对不起,但是whaaaaaat?向我们展示您要测试的代码并解释您要测试的行为

标签: java spring unit-testing mocking


【解决方案1】:

我认为您想使用 PowerMockito 来模拟在 MyException(message.getMessage()) 中使用的 MyException 的参数化构造函数,这样构造函数实际上不会尝试在 null 对象上调用 getMessage()。

详细解释了该设置here。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-20
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多