目前我正在编写基于Boost asio的网络库。 我想用一种环回测试自动测试我的lib。 问题是,服务器连续运行,因此测试永远不会结束。 我的想法是用响应数据做一些EQUAL测试,并成功地手动停止单元测试。如果发生超时,则测试应该以失败停止(我知道,它更像是一个单元测试的集成测试)... 是否有Boost Unit Test宏手动停止测试?
谢谢!
答案 0 :(得分:1)
您可以离开测试功能,这将被视为成功。如果您想明确“设置”结果,可以使用BOOST_CHECK(true)
表示成功,或使用BOOST_CHECK(false)
表示失败。这些宏的变体有一个额外的消息要在失败时打印(BOOST_CHECK_MESSAGE
)。
测试框架本身是单线程的,各个测试依次运行。每个测试函数都必须以显式return
语句或执行“结束”结束。
如果您调用的函数不会自行返回但需要一些触发器来执行此操作,则需要在调用函数之前以某种方式调度此触发器。这可能需要启动一个线程,在那里等待一段时间,然后发送触发器以使阻塞函数返回。