小编Den*_*ühn的帖子

Mockito 验证上出现 NullPointerException

问题: Mockito 在测试代码语句中抛出 NPE,特别verify是带有参数匹配器的调用,除了测试代码行之外没有进一步指示原因。

执行测试代码时的实际异常不仅缺乏信息,而且还具有误导性:

de.example.testing.TmpTest.testSomething 处的 java.lang.NullPointerException(TmpTest.java:31)

要测试的代码的非常缩小的示例:

class Medium {
    void setLock(boolean locked) {
        // do stuff
    }

    // and other functionality ...
}
Run Code Online (Sandbox Code Playgroud)

测试代码:

@Test
void testSomething() {
    // call testing code
    
    verify(_medium, never())
        .setLock(any()); // <-- NPE
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,_medium是一个有效的 Mock,并且 的执行verify(_medium, never())也返回一个非空的 MockitoMock 实例。

java unit-testing mockito

4
推荐指数
1
解决办法
1745
查看次数

标签 统计

java ×1

mockito ×1

unit-testing ×1