我如何用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模拟 –