您可以监视存根执行以检查某些期望,例如对给定存根的调用数或存根调用的顺序。期望必须在测试用例中定义,并在测试用例执行完成后进行验证。如果未达到期望,则将生成一条适当的消息并将其输出到结果。在验证结果之后,在测试用例执行结束时将删除所有期望。
存根期望必须在对被测试函数的所有调用之前,以确保所有的存根调用都被计数。
下表描述了可用的期望类型:
期望 | 说明 |
---|---|
CPPTEST_EXPECT_NCALLS(<func-id>, <value>) | 期望调用 |
CPPTEST_EXPECT_NCALLS_MORE_THAN(<func-id>, <value>) | 期望调用 |
CPPTEST_EXPECT_NCALLS_LESS_THAN(<func-id>, <value>) | 期望调用 |
CPPTEST_EXPECT_NCALLS_IN_RANGE(<func-id>,<min>,<max>) | 期望调用 |
CPPTEST_EXPECT_CALL_SEQUENCE() [Add<func-id>|AddNTimes<func-id>] | 指定对存根的调用的预期序列 |
示例
以下示例提供了设置存根定义期望的典型方法。
存根调用期望的数量
为存根调用数量设置期望的 API 对于 C 和 C++ 是相同的。
- 定义对存根的确切调用数的期望:
在下面的示例中,预期 foo 存根被恰好调用 3 次。
CPPTEST_EXPECT_NCALLS("foo",3);
- 定义存根调用数量大于以下值的期望:
在下面的例子中,foo 存根被调用超过 3 次。
CPPTEST_EXPECT_NCALLS_MORE_THAN("foo",3);
- 定义存根调用数量小于以下值的期望:
在下面的示例中,预期 foo 存根被恰好调用 3 次。
CPPTEST_EXPECT_NCALLS_LESS_THAN("foo",3); - 定义存根调用数量在范围内的期望:
在下面的示例中,预期 foo 存根被恰好调用 3 次。
CPPTEST_EXPECT_NCALLS_IN_RANGE("foo",3, 7);
存根调用期望值序列
定义存根调用序列的期望:
下面的示例设置了 foo -> goo -> foo (3times) -> goo
存根调用序列的期望值:
[C] CPPTEST_EXPECT_CALL_SEQUENCE()->Add("foo")->Add(goo")->AddNTimes("foo", 3)->Add("goo"); [C++] CPPTEST_EXPECT_CALL_SEQUENCE().Add("foo").Add(goo").AddNTimes("foo", 3).Add("goo");
在以下情况下违背了本示例中所定义的期望
- 序列中指定的存根没有按照预测的顺序调用
- 在测试用例结束时,未调用预期序列中某些函数