1

使用 withCapture 捕获对象的 jmockit 中的验证不太有效。有什么帮助吗?

@Injectable
private API _api;

@Tested
private ServiceImpl _service;

@Test
public void test(){
    new Verifications() {
        {
            VirtualUser user;
            _api.add(user = withCapture());
            Assert.assertEquals("1", user.getId());
            Assert.assertEquals("user", user.getUsername());
        }
    };
    _service.add("1","user");
}

例外:user.getId() 中的空指针。

4

1 回答 1

8

验证块 ( new Verifications() { ... }) 应该在执行了被测代码之后出现。在示例测试中,验证是在之前执行的,因此此时没有任何内容可以捕获到user变量中。因此,它仍然存在null。只需将验证块移动到测试方法的末尾即可。

于 2013-06-25T11:34:46.250 回答