我试图运行一个将数据更新为DB的测试用例。这是我测试方法的源代码。
@Tested // This is class-level scope as I have different test methods.
FirstLevelClass firstLevelClass;
@Test
public void testUpdateDB(@Mocked SecondLevelClass secondLevelClass) throws Exception {
// Updated method by passing an argument.
firstLevelClass.updateDatabaseThroughSecondLevelClass(info);
new Verifications() {{
SecondLevelClass.updateDB(creds, data);
times =1;
}};
这里我的目的是验证对模拟方法的预期调用[记录在期望中]。但是,验证块正在提供以下异常消息。如果我删除次= 1 ,那么测试用例就会成功。这不是我想要的结果。任何人都可以告诉我在我的测试用例中可能出现的问题。
mockit.internal.MissingInvocation:缺少1次调用: SecondLevelClass #updateDB(creds,data) 带参数:信用证,数据
引起:缺少调用
更新了问题:
updateDatabaseThroughSecondLevelClass(info)
有一个参数,从该参数我们在SecondLevelClass中形成信用参考。
Credentials creds = info.getCredentials();
但是在验证块[这是FirstLevelClass 的一部分]中,我们创建了本地测试对象。</ p>
Credentials creds = getCredsTestObject();
这就是它抱怨Missing invocations
的原因。因为两个类都是两个不同的引用。任何人都可以建议我如何处理这种情况。
提前致谢。