【发布时间】:2016-01-07 21:24:14
【问题描述】:
我正在尝试将单元测试和模拟添加到旧项目中。作为其中的一部分,我部分模拟了其中一个类,只模拟了我当前正在测试的类中需要的方法。然后我将这个模拟传递给依赖注入的类并在析构函数中删除它,但是当我运行测试时它会抱怨:
ERROR: this mock object (used in test xxxx) should be deleted but never is. Its address is @0000000004208AD0.
ERROR: 1 leaked mock object found at program exit.
通过代码进行调试时,我可以看到在析构函数中的模拟对象上调用了 delete,但它仍然在抱怨。如果我在测试结束时再次调用 delete 我会抛出一个 SEH 异常,因为我试图删除已经被取消分配的内存,但是如果我在析构函数中注释掉 delete 则它可以工作(但这显然会导致内存泄漏)
【问题讨论】:
标签: c++ unit-testing googlemock gmock