我需要模拟对象的公共(public)非静态方法。
问题是我无法创建模拟对象,因为该对象是直接在代码中创建的。
我尝试使用 PowerMockito.spy() 和 PowerMockito.when(...) 来监视类,但它不起作用(可能是因为 PowerMockito.when 仅适用于静态和私有(private)方法)
例如,假设我需要测试一下:
...
myClass anObject = new myClass();
anObject.aMethod();
...
我如何模拟调用 anObject.aMethod() ?
我想我需要监视 myClass,但它不起作用..
最佳答案
使用依赖注入(inject)。
在最简单的情况下,只需将工厂对象传递给创建对象的方法,然后监视该工厂。
执行此操作的其他方法是将工厂传递给对象的构造函数。
关于java - 替换非静态方法java模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4874464/