我想单元测试使用EasyMock的类。为了简化,我在下面做了一个例子。我想要的是在测试期间将StringBuilder实例替换为EasyMock实例。 (因为它不是我想要测试的StringBuilder的功能。)不幸的是,这在下面的例子中不起作用。在其他测试中,我通过使用EasyMock实例设置实例变量来解决问题,但对于此示例,我无法执行此操作,因为它是我关心的本地实例化对象。如何用Easymock替换我的实例
谁能帮我一把吗?
类来进行测试:
package example.easymock
public class Example {
public String exampleMethod() {
StringBuilder string = new StringBuilder();
string.append("hello");
return string.toString();
}
}
测试类:
package example.easymock
import needed classes
public class ExampleTest {
@Test
public void exampleMethodTest() {
StringBuilder stringMock = EasyMock.createMock();
Example example = new Example();
stringMock.append("hello");
EasyMock.expect(stringMock.toString()).andReturn("hi");
EasyMock.replay(stringMock);
example.exampleMethod();
}
}
PowerMock实际上可以模拟类的构造函数。所以它*可能与PowerMock。 – dav1d
@ dav1d该死的,那件事情是强大的,真实的。 – Deltharis
只需添加如何使用TestNG + PowerMock + Mockito进行测试就很有帮助:准备要测试的类:''@PrepareForTest(SomeService.class)''然后只是“构造函数”:'whenNew(Date 。的.class).withNoArguments()thenReturn(现在);' – dav1d