INS*_*INS 4 c c++ unit-testing assertions
我有一些问题涉及从assert.h测试包含断言宏的一些函数的事实.
如果断言失败,测试也会失败.这给我留下了一些永远不会起作用的测试用例.
例如,一个函数而不是指示失败(返回false或类似的东西)断言.
有没有解决方案(包含断言的单元测试函数)?
crm*_*ore 13
您可能正在测试断言在您预期时(在输入错误时)中止的事实.
测试框架Google Test作为ASSERT_DEATH宏,它将测试程序是否在您期望的位置中止(如断言).
您也可以使用NDEBUG定义(-DNDEBUG with gcc)来编译,以禁用单元测试的断言.
也许这只是我,但我认为如果你有断言失败,你甚至不应该考虑更高级别的单元测试,直到你修复它们.这个想法是,如果代码写得正确,断言在任何情况下都不应该失败,包括单元测试.或者至少我是如何编写代码的.
不,单元测试就是您在开发过程中所做的.断言是一个运行时构造.
根据我的经验,大部分时间断言都在生产中被关闭.但你应该一直在测试.
CppUnit是一个很好的测试框架.它是nUnit C++系列的一部分.
| 归档时间: |
|
| 查看次数: |
6832 次 |
| 最近记录: |