2014-10-09 43 views
2

我已经编写了使用libcURL从指定网页检索信息的代码。我想为这段代码写一个单元测试。我试图用cmake做到这一点,但我遇到了各种各样的问题。是否有另一个框架可以让我更容易地实现这一点?我应该使用哪个C++单元测试框架来运行涉及libcurl的测试?

下面是关于我一直有与C进行的问题的详细信息:

以前我是发送一个测试网页使用tinyweb作为单元测试的一部分本地主机。然后,我使用多个命令向我的代码输入值(这将从本地主机中检索相关信息)并杀死tinyweb。整体结构与此类似:

CTest with multiple commands

我所遇到的一些问题。一旦启动tiny.exe的命令被执行,ctest的下一行将不会运行,直到tiny.exe被终止。

我以前尝试使用批处理文件做类似的事情,但tiny.exe在意外时间被杀害。

回答

0

为此,我会推荐gtest和gmock。首先,除非您控制网站,否则您不能保证您请求的内容甚至会存在。其次,即使网站确实存在,也不能保证内容将保持不变。

所以1) 在本地主机上建立自己的网站。你可以使用gtest。 2)然后你可以使用gmock来模拟你期望今天的网站内容是什么。

3)您也可以使用谷歌模拟来模拟DNS失败,连接问题等,但现在,开始简单。

+0

我一直在做这方面的一些研究,gtest似乎没有任何内置的功能来设置本地主机。 你能澄清你的意思吗?我应该在setUp()中设置本地主机吗? – 2014-10-13 03:53:43

+0

对不起,我不清楚。通过“使用gtest”,我的意思是你可以使用gtest来测试本地主机上的web服务器,而不是它是一个。至于建立一个网络服务器,如果你的网络上有一台打印机,它可能有一台。只需通过其IP地址连接到它。您可以先在浏览器中测试,看看会发生什么。 或研究设置一个网络服务器,以找到最适合你的东西。例如,有许多python最小努力服务器。 – 2014-10-13 16:51:38