AClass a=new AClass() ; a.getTypeA().getTypeB();
我已经使用模拟构造函数来模拟 AClass 方法,但如何模拟 getTypeB();方法
我能够模拟 A 类,但对于 B 类,它调用真实的方法。 方法 getTypeB() 具有 TypeB 类。
这可能不是最干净的方法,但您需要确保您引用的每个对象也被模拟。您可以通过使用 Mockito 的 when() 方法构建模拟对象来做到这一点。
您应该能够在测试中执行以下操作:
@SpringBootTest
public class AClassTest {
@Mock
private AClass a;
@Mock
private TypeA typeA;
@Mock
private TypeB typeB;
@Autowired
private YourController yourController;
@Test
void testControllerInSomeWay() {
when(typeA.getTypeB()).thenReturn(typeB);
when(a.getTypeA()).thenReturn(typeA);
yourController.useAClassInSomeWay(a);
}
}