C++ 我可以只在单元测试中使用BOOST\u检查吗?

C++ 我可以只在单元测试中使用BOOST\u检查吗?,c++,boost-test,C++,Boost Test,或者我可以在常规代码中使用它吗 如果答案是“否”,那么是否存在C++库,它将提供所有的宏,如CHIGIOLITY、CHECKIORACK等? < P>这只是单元测试中的有意义的,因为它的目的是警告单元测试框架测试失败,然后继续。如果单元测试框架没有运行,那就不起作用 在单元测试之外,您通常希望使用某种类型的断言

或者我可以在常规代码中使用它吗


如果答案是“否”,那么是否存在C++库,它将提供所有的宏,如CHIGIOLITY、CHECKIORACK等?

< P>这只是单元测试中的有意义的,因为它的目的是警告单元测试框架测试失败,然后继续。如果单元测试框架没有运行,那就不起作用

在单元测试之外,您通常希望使用某种类型的断言

<如果答案是“否”,那么是否有C++库将提供所有宏? 像
检查相等
检查关闭
,等等


简短的答案是否定的。较长的答案是:这些宏是Boost.Test的一部分。因此,如果您不使用Boost.Test,您将不得不自己启动。

基于Boost/assert或cassert编写此功能相当容易。

但是,请注意,断言可能需要一些定义(例如DEBUG)

我确实使用boost测试。第一个问题是,我是否不能在单元测试用例之外使用它们。导入定义(即,将定义这些宏的标题的特定部分复制粘贴到单独的标题中,并将其添加到您的项目中,您不希望整个Boost.test与您的代码一起提供。)这到底是什么意思“单元测试框架正在运行”。这是否意味着它是线性的,或者我们在BOOST_AUTO_TEST_案例中?如果我在BOOST_AUTO_TEST_案例之外调用BOOST_CHECK_EQUAL,会发生什么情况?(有或没有连接测试框架?)我也在寻找同样的东西。遗憾的是,Boost.Test和Catch2似乎都没有提供一个简单的宏,可以用它来代替标准的assert,并带有很好的错误消息。知道assert失败是有用的,但知道它是如何失败的更有用。Google Test似乎提供了类似的东西,但我做到了还没试过。