2012-11-13 24 views
1

我有一个关于单元测试的问题。我希望有人能提前给我一些建议。单元测试套接字函数在lib或DLL没有它的源代码

这是我的问题。 我需要为谷歌单元测试(gtest)上的lib库编写单元测试,这是关于套接字通信的。其中一些封装了低级套接字函数,这意味着我需要为这些函数进行单元测试。顺便说一句,我没有访问lib的源代码=。=#

例如,有一个函数叫它AcceptConnection(一些参数...),也许它包装了SOCKET accept(SOCKET,SOCKADDR * ,INT *)。我如何测试它。现在没有源代码。它似乎是一个关于如何编写Windows套接字API的单元测试的问题。

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

问候

乔伊宇

[更新]

我花了一段时间试图找到,如果有一些办法可以解决这个问题。似乎没有现在。没有源代码甚至不知道它使用什么样的系统功能。最糟糕的方式使用父进程启动单元测试应用程序并重定向系统调用不起作用。

+1

你想测试什么?你的代码或套接字函数? – smk

+0

@Sajit Kunnumkal:lib.it中的所有函数都是10多年前我的团队中的一个人编写的。 –

回答

0

通过此链接http://code.google.com/p/googlemock/wiki/ForDummies,它允许嘲笑gtest。

你应该嘲笑所有的低级套接字函数,然后测试lib中的代码。

+0

非常感谢你,我会花一些时间在googlemock上。但可悲的是,我没有lib的源代码。 –

0

你可以尝试安装一些钩子到操作系统的系统调用,并检查正在作出的呼吁......

或者你可以尝试自动化某种从库中输出strace的检查。

Here是“linux钩子”搜索的第一个结果,似乎是在linux上挂钩调用的一个好方法。并且this是Windows上的一种相同行为的参考。我还没有尝试任何BTW。