HippoMocks文档说它可以模拟C函数,包括Windows API函数,但我找不到它的任何示例。任何人都可以举例说明Windows API函数模拟吗?
答案 0 :(得分:4)
我需要获得一个新版本,这是肯定的。
你可以像任何其他函数一样模拟API函数,除了你没有指定任何对象来调用它(因为它没有任何函数)。我已经在Linux上使用常规的libc API函数对它进行了大量测试,并且效果非常好。 Windows应该没有什么不同,但这就是为什么我的例子将退出:
void test() {
MockRepository mocks;
mocks.ExpectCallFunc(&exit).With(2).Throw(std::exception());
}
请注意,这适用于任何函数,包括那些指定永不返回的函数。如果你告诉HippoMocks模拟一个不应该返回的函数,可能没有生成返回代码导致错误。尝试抛出特定于测试的异常。现在我想起来了,就是在Windows上使用VS2008,除了退出调用之外,它实际上没有操作码。
希望你能让它发挥作用。一定要对Git(来自Assembla)进行最新的提交,因为最后一个版本还没有包含它。