1

我有一个关于单元测试的问题。我希望有人能给我一些建议,在此先感谢。

这是我的问题。我需要为基于谷歌单元测试(gtest)的库编写单元测试,这是关于套接字通信的。其中一些包装了低级套接字功能,这意味着我也需要对这些功能进行单元测试。顺便说一句,我无法访问 lib 的源代码 =.=#

例如,假设有一个名为 AcceptConnection(some arguments...) 的函数,可能它包装了 SOCKET accept(SOCKET, SOCKADDR*, INT*)。我该如何测试它。现在没有源代码。似乎这是一个关于如何为 Windows 套接字 API 编写单元测试的问题。

我不知道为这些包装函数编写单元函数是否合理,以及如何使单元测试更有效。

问候

余乔伊

[更新]

我花了一些时间试图找出是否有某种方法可以解决它。现在好像没有了。没有源代码甚至不知道它使用什么样的系统功能。最糟糕的方法是使用父进程启动单元测试应用程序并重定向系统调用不起作用。

4

2 回答 2

0

您可以尝试在操作系统系统调用上安装一些挂钩并检查正在进行的调用...

或者您可以尝试自动检查库中的 strace 输出。

是“linux hooks”搜索的第一个结果,似乎是在 linux 上挂钩调用的好方法。这是 Windows 上相同行为的参考顺便说一句,我还没有尝试过任何一个。

于 2014-08-27T14:13:54.860 回答
0

遇到此链接http://code.google.com/p/googlemock/wiki/ForDummies,它允许模拟 gtest。

您可能应该模拟所有低级套接字函数并仅测试库中的代码。

于 2012-11-13T05:35:49.547 回答