|
|
1
8
在这种情况下,您应该释放测试用例分配的内存。这样,您就可以使用一个工具来运行测试并确认没有内存泄漏。让测试代码泄漏内存意味着这将失败,并且您无法确定泄漏是在测试中,而不是在生产代码中。 至于更一般的情况,测试应该清理他们所做的工作。大多数单元测试框架都允许您实现tearDown()方法来实现这一点。这样,如果一个测试失败,你就会知道这是该测试的问题,而不是与另一个测试的交互。 |
|
|
2
4
你真的应该尝试在堆栈上创建所有模拟对象(或使用智能指针)。这样,当测试函数超出范围时,它们会自动被销毁。 |
|
|
3
3
如果“obj”不是智能指针或不是由类管理的,那么就有问题了。如果我在写测试,我会说:
无论测试结果如何,obj都会被正确销毁。如果可能的话,永远不要在C++中动态创建对象。 |
|
|
4
1
通常,您希望测试一个独立的代码路径和一个独立功能,并希望每次都能进行公平的测试。这意味着重新开始,设置所需的内容,然后在完成后丢弃测试环境。这避免了不同测试用例留下可能改变后续运行结果或行为的副作用的问题。这也意味着您可以保证您的测试彼此独立,并且可以以任何顺序运行任何子集。 然而,你会发现,有预套件和后套件设置和拆卸方法也很常见,这些方法设置了一个完整的测试环境(如数据库或其他任何东西),可以对其执行一系列单元测试。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |