标签:logic 需要 代码 ati 网上 个人 注解 when style
public class A { public Map<String, String> B() { return new HashMap<>(); } }
public class MockUnit { @Resource private A a; public String mockUnitMethod(String s) { Map<String, String> m = a.B(); //.. some logic code if (m.containsKey("key")) { return "value"; } return "not found"; } }
具体单元测试代码:
public class MockUnitTest { @InjectMockes private MockUnit mockUnit; @Mock private A a; private Map<String, String> map; private Map<String, String> map2; @Before public void init() { MockitoAnnotations.initMocks(this); map = new HashMap<>(); map.put("key", "value"); map2 = new HashMap<>(); map2.put("key2", "value2"); } public void testMockUnitMethod() { when(a.B()).thenReturn(map).thenReturn(map2); // 因为在测试MockUnit这个方法的时候,内部会调用A的方法,也就是依赖A, // 所以这个时候应该在上面用注解Mock出A,然后用when()的方式,模拟出依赖的方法的返回值 assertTrue(mockUnit.mockUnitMethod(anyString()).equals("value")); // 第一次A返回map assertTrue(mockUnit.mockUnitMethod(anyString()).equals("value")); // 第二次A返回map2 } }
[单元测试]Java单元测试,基于Mockito的第一次尝试
标签:logic 需要 代码 ati 网上 个人 注解 when style
原文地址:https://www.cnblogs.com/TinyBobo/p/9639680.html