我应该使用哪个C++单元测试框架来运行涉及libcurl的测试?

3
我已编写了使用libcURL从给定网页检索信息的代码。我想为此代码编写单元测试。我尝试使用cmake来完成这个任务,但遇到了各种问题。是否有其他框架可以更轻松地完成这项任务?
以下是我在cmake中遇到的详细信息:
之前,我使用tinyweb将测试网页发送到本地主机作为单元测试的一部分。然后,我使用多个命令向我的代码输入值(它将从本地主机检索相关信息)并关闭tinyweb。总体结构类似于此: CTest with multiple commands 我遇到了许多问题。一旦执行启动tiny.exe的命令,ctest的下一行将不会运行,直到tiny.exe被关闭为止。
我之前尝试使用批处理文件进行类似操作,但tiny.exe在意料之外的时间被关闭。
1个回答

0

对于这个问题,我建议使用gtest和gmock。首先,除非你控制网站,否则无法保证你请求的内容是否存在。其次,即使网站存在,也无法保证内容会保持不变。

所以,1)在本地主机上设置自己的网站。你可以使用gtest来实现这一点。2)然后,你可以使用gmock来模拟你预期今天网站内容的情况。

3)你还可以使用Google Mock来模拟DNS故障、连接问题等。但现在,先从简单的开始。


我已经对此进行了一些研究,似乎gtest没有任何内置功能来设置本地主机。您能否澄清一下您的意思?我应该在setUp()中设置本地主机吗? - Shani de Leeuw
抱歉,我的表述不够清晰。我所说的“使用gtest进行测试”,是指您可以使用gtest来针对本地主机上的Web服务器进行测试,而不是它本身就是一个Web服务器。至于设置Web服务器,如果您的网络上有打印机,那么它可能已经有了一个。只需通过其IP地址连接即可。您可以首先在浏览器中进行测试,以查看预期结果。或者研究如何设置Web服务器,找到最适合您的方法。例如,有许多Python最小化的服务器可供选择。 - Fred Mitchell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接