我是Mockito的新手,我尝试为nstead适配器编写单元测试,假设我们有3个类,最后一个类将更新Map,将其返回到中间层,然后再次返回到最终层
List<Map<Integer, List<String>> x
Class A {
Public void method1(List<Map<Integer, List<String>> x) {
method2(x)
}
private void method2 (List<Map<Integer, List<String>> x) {
x.add(...)
}
}
Class B {
A a;
Public int methodB(List<Map<Integer, List<String>> x) {
a.method1(x)
return x.length;
}
}
Class C {
B b;
Public void methodC(List<Map<Integer, List<String>> x) {
int size = b.methodB(x)
}
}
现在,当我想为C类编写一个单元测试时,我这样做
Public Class cTest {
List<Map<Integer, List<String>> x;
@InjectMocks
C c;
@Mock
B b;
@Test
Public Void test() {
when(b.methodB(x)).thenReturn(1);
c.methodC(x)
}
}
问题是,当我在单元测试中调试对c.methodC(x)的调用时,我检查了x,它总是空的,那么在这种情况下,我如何填充它呢?
1条答案
按热度按时间ffscu2ro1#
需要声明Mockito扩展:
您需要在类路径中使用扩展名。
参考:https://www.baeldung.com/mockito-junit-5-extension