我如何用B模擬構造函數參數來模擬A?我如何用B模擬作爲構造函數參數來模擬A?
private B actionContext;
private A target;
@BeforeEach
void setUp() {
actionContext = mock(B.class);
target = mock?
}
public class A {//...
public A(B b){//...
}
}
我如何用B模擬構造函數參數來模擬A?我如何用B模擬作爲構造函數參數來模擬A?
private B actionContext;
private A target;
@BeforeEach
void setUp() {
actionContext = mock(B.class);
target = mock?
}
public class A {//...
public A(B b){//...
}
}
您可以使用註釋的Mockito
@Mock
private B mockB;
@Spy
@InjectMocks
private A testObj = new A(mockB);
搭建測試行爲setUp方法... 時(mockB.method())thenReturn()。
,如果你想嘲笑class A
方法,你不必嘲笑class B
嘲諷class A
足夠
@BeforeEach
void setUp() {
A mockedA = mock(A.class);
}
如果你想使用的class B
嘲笑方法可以單獨嘲笑它
@BeforeEach
void setUp() {
A mockedA = mock(A.class);
B mockedB = mock(B.class);
}
也會建議您閱讀Mockito docs瞭解模擬原則。
您正在測試使用A調用B方法的類A或其他類嗎? –
@EdwinMiguel我正在測試A類。 – ArthurDn
您不需要模擬A類,只需在A構造函數中添加B模擬 –