HippoMocks - 如何模拟Win32 API函数

时间:2012-03-21 13:37:21

标签: winapi mocking hippomocks

HippoMocks文档说它可以模拟C函数,包括Windows API函数,但我找不到它的任何示例。任何人都可以举例说明Windows API函数模拟吗?

http://www.hippomocks.com/wiki/index.php/What_can_be_mocked

1 个答案:

答案 0 :(得分:4)

我需要获得一个新版本,这是肯定的。

你可以像任何其他函数一样模拟API函数,除了你没有指定任何对象来调用它(因为它没有任何函数)。我已经在Linux上使用常规的libc API函数对它进行了大量测试,并且效果非常好。 Windows应该没有什么不同,但这就是为什么我的例子将退出:

void test() {
    MockRepository mocks;
    mocks.ExpectCallFunc(&exit).With(2).Throw(std::exception());
}

请注意,这适用于任何函数,包括那些指定永不返回的函数。如果你告诉HippoMocks模拟一个不应该返回的函数,可能没有生成返回代码导致错误。尝试抛出特定于测试的异常。现在我想起来了,就是在Windows上使用VS2008,除了退出调用之外,它实际上没有操作码。

希望你能让它发挥作用。一定要对Git(来自Assembla)进行最新的提交,因为最后一个版本还没有包含它。