我想單元測試使用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