【发布时间】:2023-04-09 02:07:01
【问题描述】:
我有以下课程
public class One {
private Map<String, String> nodes = new HashMap<String, String>();
public void addNode(String node, String nodefield){
this.nodes.put(node, nodefield);
}
}
我想写一个测试类来测试addNode方法,有以下内容:
@RunWith(MockitoJUnitRunner.class)
public class OneTest {
@InjectMocks
private One one = new One();
@Mock
Map<String, String> nodes;
@Test
public void testAddNode(){
one.addNode("mockNode", "mockNodeField");
Mockito.verify(nodes).put("mockNode","mockNodeField");
}
}
有效。但我想知道是否有办法在不使用@InjectMocks 的情况下做到这一点,如下所示
public class OneTest {
private One one;
@Test
public void testAddNode(){
Map<String, String> nodes = Mockito.mock(Map.class);
one = Mockito.injectmocks(One.class, nodes); // or whatever equivalent methods are
one.addNode("mockNode", "mockNodeField");
Mockito.verify(nodes).put("mockNode","mockNodeField");
}
}
【问题讨论】:
标签: java unit-testing testing mocking mockito