Mat*_*ský 5 c++ unit-testing stl
我必须为一些写得不好的C++代码编写测试.问题是代码在许多情况下导致STL断言/调试中断(通常由诸如字符串/向量的边界之外的访问之类的愚蠢错误引起),这导致测试的终止.
是否有可能使STL抛出异常(可以被捕获)而不仅仅是崩溃?
我必须将对原始代码的更改保持在绝对最小值.
感谢帮助
这绝对取决于您使用的 STL。也就是说,这可能根本不可能。
该标准定义了许多保证(尤其是 C++0x 保证)以及函数是否抛出异常是这些保证的一部分。比如std::vector<T>::operator[]不会扔。
话虽这么说,可能有很多技巧(用于调试的特定编译标志,或者更改 STL 中使用的宏,如果有的话),但它是高度具体的。
另一种解决方案可能是尝试在虚拟化环境中运行程序。例如,在 Linux 上,您可以在 Valgrind 下运行它。它会报告访问错误,但实际上不会停止程序的执行。
| 归档时间: |
|
| 查看次数: |
311 次 |
| 最近记录: |