java - Mockito:使用 List<String> 作为参数

标签 java junit mockito

目前我使用 Mockito 编写 JUnit 测试。当列表中的一个 String 具有定义的值(例如 "00123")时,它应该通过:

Mockito.when(myMock.isContractAvailable("0815", Arrays.asList(new String[] {ANYVALUE, "00123", ANYVALUE})).thenReturn(Boolean.TRUE);

我该怎么做? 谢谢!

最佳答案

您可以提供自定义匹配器来进行参数匹配

when(myMock.isContractAvailable(eq("0815"), argThat(new ArgumentMatcher<List<String>>() {
        @Override
        public boolean matches(List<String> list) {
            return "00123".equals(list.get(1)); // essentially ```list -> "00123".equals(list.get(1))``` in java 8
        }
})).thenReturn(true);

关于java - Mockito:使用 List<String> 作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54250124/

相关文章:

java - 将多个操作映射到同一个类 struts 2.3 是最佳实践吗

java - Mockito 无法与泛型类型正常工作

java - 如何测试菜单

java - Mockito.when 给出 InvalidUseOfMatchersException : Misplaced or misused argument matcher detected here

java - 使用 powermockito 验证静态 void 方法的调用

java - 如何用正则表达式提取地址

java - 有没有办法将长时间运行的(例如压力测试)分开,这样它们就不会在 Maven 2 中默认运行?

java - 没有volatile的线程安全

java - 正确放置线模的 Junit 测试类中的 stub

java - Mockito ArgumentMatchers 不匹配吗?