如何使用B mock作为构造函数参数模拟A?
private B actionContext;
private A target;
@BeforeEach
void setUp() {
actionContext = mock(B.class);
target = mock?
}
public class A {//...
public A(B b){//...
}
}
答案 0 :(得分:0)
您可以使用mockito注释
@Mock
private B mockB;
@Spy
@InjectMocks
private A testObj = new A(mockB);
在setUp方法中设置测试行为... 当(mockB.method())thenReturn();
答案 1 :(得分:0)
如果您想模拟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以了解嘲弄原则。