在easymock中模拟未知实例的方法调用

时间:2014-08-14 15:54:53

标签: java unit-testing junit mocking easymock

我有一个类似这样的方法的课程

class MyClass(){
   public String myMethod(){
       Logger.info(new MyOtherClass().myOtherMethod());
   }
}
  

如何使用EasyMock模拟myOtherMethod()的调用?

背景:

  

最初我将myOtherMethod写为静态方法。为了测试,因为我无法模拟静态方法调用   我最后编写了一个调用静态方法的实例方法。
我尝试使用PowerMock模拟我的代码中的静态方法,但是在使用JSR-303 bean验证器时它显示了一些错误(请参阅{{3}并且我也没有找到任何有效的解决方案来将PowerMockRunner与SpringJunit4ClassRunner集成,这是我的一个例子。

1 个答案:

答案 0 :(得分:0)

您可以使用here所述的PowerMock.expectNew(...)模拟功能。

确保您已正确注释测试用例类。很多时候人们错过了你必须使用调用@PrepareForTest(ClassThatCreatesTheNewInstance.class)注释中的构造函数的类的细节。

如果您仍然遇到错误,请发布您的测试用例代码和堆栈跟踪。