gpt4 book ai didi

Java mockito 服务测试参数取反

转载 作者:行者123 更新时间:2023-11-28 20:22:26 24 4
gpt4 key购买 nike

我尝试使用 mockito 2.7.15 测试我的服务。

首先我试试这个:

when(customerDaoMock.find(AdditionalMatchers.not(id1))).thenReturn(null);

但是我得到了一个InvalidUseOfmatchersException..所以我用谷歌搜索了这个问题并找到了这个stackoverflow question .之后我的第二次尝试是:

when(customerDaoMock.find(AdditionalMatchers.not(Mockito.argThat‌(id1)))).thenReturn(null);

但是 Mockito 类不再有方法 argThat

所以我的问题是如何在 mockito 中使用 not 否定方法?

或者对于这个问题还有其他选择或更好的解决方案吗?

最佳答案

这是来自 AdditionalMatchers javadoc 的示例:

//anything but not "ejb"
mock.someMethod(not(eq("ejb")));

这是工作示例:

public static class Tmp {
public String f(Long a) {
return a.toString();
}
}

@Test
public void mockitoTest() {
Tmp mock = Mockito.mock(Tmp.class);
when(mock.f(AdditionalMatchers.not(Mockito.eq(5L)))).thenReturn("42");

Assert.assertEquals("42", mock.f(4L));
Assert.assertNull(mock.f(5L));
}

关于Java mockito 服务测试参数取反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42997010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com