3

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

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

4

1 回答 1

4

我需要发布一个新版本,这是肯定的。

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

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

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

希望你能让它工作。请务必在 Git(来自 Assembla)上进行最新提交,因为上一个版本尚不包含此内容。

于 2012-03-26T09:10:12.227 回答