c++ - 非中止断言 CppUnit

标签 c++ qt cppunit

我在测试函数中使用多个断言,但是当(例如)第一个断言失败时,其余断言将不再执行。 有没有一种方法可以使用 CppUnit 进行断言(CPPUNIT_ASSERT),并且在失败后不会离开测试函数?例如不中止断言。

我发现了这个:http://cppunit.sourceforge.net/cppunit2/doc/但库中未实现“CHECK”。

最佳答案

关于单元测试有两种思想流派。一是单元测试应该只测试一件事,如果你想测试两件事,你应该有两个测试。优点是完全消除了您上面描述的问题,而缺点是需要额外花费几秒钟来编写额外的测试。另一个想法是,一个测试可以测试多个事物,失败的测试很少见,并且可以被开发人员识别并修复。优点是复杂的设置只需要完成一次,当然缺点是它在第一次失败时停止测试,隐藏了问题的真实数量和身份。

我的做法是务实。如果您可以摆脱多个断言,并且仍然可以通过一个测试来开发和轻松测试多个属性,那么就这样做——但是要做好失败的准备,如果您陷入了您所描述的情况,请快速将测试重构为多个测试,然后不要把时间浪费在一项测试上。测试总数绝对不是一个因素。适当的测试数量是彻底评估代码所需的数量。

关于c++ - 非中止断言 CppUnit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19585846/

相关文章:

c++ - 将 char[2] 转换为 unsigned short 时出错?

c++ - math.h 和 cmath 之间的冲突?

c++ - 使用 opencv 和 c++ 找到最接近复杂形状的匹配项的最佳方法是什么?

c++ - QML:设置AnimatedImage源而不加载资源中的文件

c++ - 如何根据给定的字符长度拆分 QString?

visual-studio - 在 qmake 生成的 .vcxproj 中导入 .props 文件

c++ - 如何在 CppUnitTestFramework 中对具有 TEST_CLASS 的类使用继承

c++ - .cpp 文件和 .h 文件有什么区别?

c++ - 无法执行 Netbeans 创建的 .o 文件

c++ - 使用 CPPUnit 对遗留 C++ 代码进行单元测试