您可以重构,
MyClass以便它使用依赖注入。不用让它创建
AnythingPerformerClass实例,您可以将类的实例传递给
MyClass类似这样的构造函数:
class MyClass { private final AnythingPerformerClass clazz; MyClass(AnythingPerformerClass clazz) { this.clazz = clazz; } public boolean performAnything() { return clazz.doSomething();}}然后,您可以在单元测试中传递模拟实现
@Testpublic void testPerformAnything() throws Exception { AnythingPerformerClass mockedPerformer = Mockito.mock(AnythingPerformerClass.class); MyClass clazz = new MyClass(mockedPerformer); ...}或者,如果您的
AnythingPerformerClass包含状态,则可以将a传递
AnythingPerformerClassBuilder给构造函数。



