【发布时间】:2014-03-13 12:29:42
【问题描述】:
我正在尝试在客户端服务器 N/W 上执行 boost 单元测试。
我将如何测试是否抛出异常,例如boost::asio::error::Connection_refused如果服务器不在线?
我浏览了文档,但我仍然感到困惑(boost,c++ 新手)。
仅供参考,我运行了一个BOOST_AUTO_TEST_CASE,其中包含一个构造函数,用于设置 IP 地址和端口号并连接到服务器。当我运行BOOST_AUTO_TEST 时,如果服务器处于脱机状态并且没有检测到错误,我会得到预期的异常,但我想我的问题是如果我能够在没有它们的情况下进行测试,BOOST_CHECK_THROW 或BOOST_WARN_THROW 将如何发挥作用。
【问题讨论】:
-
完全不清楚你想要达到什么。据我了解您的问题,您已经设法编写了一个测试用例,该用例在尝试连接到离线服务器时成功获得了预期的异常。那你的问题是什么?
-
感谢您的回复阿恩。我在没有使用 BOOST_CHECK_THROW 或 BOOST_WARN_THROW 的情况下运行了我的测试,我想知道这些东西是否有必要?如果我可以运行测试,在不使用 BOOST_CHECK_Throw 等的情况下获得异常而不会失败,它们有什么用。
-
哦,我现在可以猜测您的代码是什么样子(您尝试/捕获“手动”并在捕获到正确的异常时成功,对吧?),但是如果您很乐意提供它,我们可以告诉您内置 boost 宏的优点是什么。我假设您没有足够的代表来自己编辑问题,所以只需给我们一个指向 SSCCE 的 pastebin 链接,我们会为您编辑它
-
@ArneMertz 他不需要代表来编辑他自己的问题。
标签: c++ unit-testing boost