我很惊讶谷歌C++测试框架没有明确支持内存泄漏检查。然而,Microsoft Visual C++有一个变通办法,但是Linux呢?
如果内存管理对我来说很重要,那么使用另一个C++单元测试框架会更好吗?
发布于 2015-03-21 05:27:42
如果内存管理对我来说很重要,那么使用另一个C++单元测试框架会更好吗?
我不知道c++单元测试,但我用的是Dr. memory,它可以在linux windows和mac上工作,如果你有符号,它甚至可以告诉你内存泄漏发生在哪行!真正有用的:D
更多信息http://drmemory.org/
发布于 2015-03-21 04:08:01
“我很惊讶谷歌C++测试框架没有明确支持内存泄漏检查。”
它不是(也从来没有)这样做的目的。你实际上可以做一些认证,例如使用google mock和设置预期的调用(例如析构函数)。但使用专门针对这一方面的工具,肯定会比你自己编写的任何东西都要好。
“使用另一个C++单元测试框架更好吗?”
所以为什么要费心去寻找不同的单元测试框架(那也不会支持这样的特性,至少我所知道的没有)。
您可以使用像这样的工具,并在它们的控制下运行UnitTester可执行文件来检测内存泄漏。
备注:
上面关于使用UnitTester可执行文件执行此操作的建议,并不能捕获使用您的代码生成的最终可执行文件中所有可能的内存泄漏,而只是帮助查找实际测试的代码的but /缺陷。
发布于 2021-02-24 09:55:14
内存泄漏是系统接口使用不当的结果,单元测试应该检查这些接口是否在被测试的单元中正确使用,而不是那些接口的具体实现结果是什么。它应该检查您的单元直接使用的内存分配和释放接口是否按设计使用。测试系统特定的结果将是组件或集成测试的一部分。在单元测试中,内存管理接口位于被测单元的外部,因此应该使用测试实现来清除。
https://stackoverflow.com/questions/29174938
复制相似问题