Mockito for int primitive



如果我使用 Wrapper 类类型变量作为参数,Mockito 测试用例正在通过,但是,如何为 int 基元类型变量编写 Mockito 测试用例,该变量是 ServiceImpl 中方法的参数。

您可能会在

anyargThat基元类型参数以whenverify时遇到一些麻烦。这些以对象为中心的方法可以正确地处理副作用,但它们倾向于为虚拟返回值返回null,这对于通过自动装箱解包原语的 Java 不起作用。

幸运的是,org.mockito.ArgumentMatchers类有一整套以基元为中心的方法(我在这里列出了int方法):

static int anyInt()
static int eq(int value)
static int intThat(org.hamcrest.ArgumentMatcher<java.lang.Integer> matcher)

在 ArgumentMatchers 类的文档中看到所有这些。

我知道

这个问题已经超过 4 年零 8 个月了,但为了今天明确的解决方案,我发布了这个

就我而言,要测试的方法签名是

public SomeObject create(String code, int status)

因此,在调用该方法时用于验证参数值的测试代码将如下所示

verify(this.service).create(
        argThat(code -> "dummy_code".equals(code)),
        intThat(status -> status == 105));

如果我使用 arg即使对于 int(或任何基元类型),也会抛出 NPE

目前我正在使用org.mockito:mockito-core:jar:2.15.0,考虑到提出问题的时间,它一定是先进的!但是想到这可能对人们有所帮助...谢谢

相关内容

  • 没有找到相关文章

最新更新