![](/img/trans.png)
[英]How to mock a non static method of a class whose instance is passed as argument?
[英]Mock non static method of a class
我正在嘗試使用存根編寫測試,但嘲笑其中一種方法並沒有按預期發生。
class A {
public static getInstance(){
return new A();
}
public String getConn(){
return "Hello";
}
}
class B {
public String createConn(){
A instance = A.getInstance();
return instance.getConn();
}
}
我的測試課:
@RunWith(PowerMockRunner.class)
@PrepareForTest(A.class)
public class TestClassB{
@Spy
B classB = new B();
@Test
public void testConn(){
PowerMockito.mockStatic(A.class);
given(A.getConn()).thenReturn("Welcome");
assertEquals("Welcome", classB.createConn());
}
我想在 B 類上創建一個測試, createConn
方法,當我獲得連接時,我想使用 mockito 接收“歡迎”而不是“Hello”?
我找到了問題的解決方案。
PowerMockito.mockStatic(A.class);
PropertyManager mock = PowerMockito.mock(A.class);
given(A.getInstance()).willReturn(mock);
given(mock.getConn()).willReturn("Welcome");
assertEquals("Welcome", classB.createConn());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.