Mockito for int primitive
如果我使用一个 Wrapper 类类型变量作为参数,Mockito 测试用例正在通过,但是,如何为 int 基元类型变量编写 Mockito 测试用例,这是 ServiceImpl 中方法的参数。
如果我使用一个 Wrapper 类类型变量作为参数,Mockito 测试用例正在通过,但是,如何为 int 基元类型变量编写 Mockito 测试用例,这是 ServiceImpl 中方法的参数。
对于 和 的基元类型参数,您可能遇到一些问题。这些以对象为中心的方法正确地完成了副作用的工作,但它们往往会返回一个虚拟返回值,这不适用于通过自动装箱打开包装基元的Java。any
argThat
when
verify
null
幸运的是,该类具有以原始为中心的方法的完整补充(我在这里列出了这些方法):org.mockito.ArgumentMatchers
int
static int anyInt()
static int eq(int value)
static int intThat(org.hamcrest.ArgumentMatcher<java.lang.Integer> matcher)
我知道这个问题已经超过4年零8个月了,但为了从今天开始明确的解决方案,我发布这个
在我的情况下,要测试的方法签名是
public SomeObject create(String code, int status)
因此,在调用方法时用于验证参数值的测试代码将遵循
verify(this.service).create(
argThat(code -> "dummy_code".equals(code)),
intThat(status -> status == 105));
如果我使用 argThat,即使对于 int(或任何基元类型),那么 mockito 就会抛出 NPE
目前我正在使用org.mockito:mockito-core:jar:2.15.0,考虑到提出问题的时间,这肯定是先进的!但想到这可能对人们有帮助...谢谢