gpt4 book ai didi

unit-testing - 如何对 std::vector 的排序进行单元测试

转载 作者:行者123 更新时间:2023-12-04 04:15:48 27 4
gpt4 key购买 nike

我以前从未使用过单元测试,所以我试一试 CxxTest。我写了一个测试来检查函数是否正确地对 std::vector 进行了排序。首先,我确保在 vector 未排序时测试失败,然后作为健全性检查,我测试了 std::sort 是否有效(当然,它确实有效)。到目前为止,还不错。

然后我开始编写自己的排序函数。但是,我犯了一个错误,函数没有正确排序。由于我的测试没有在排序时输出向量的中间状态,因此很难判断我的排序函数哪里出了问题。我最终使用 cout 语句(我本可以使用调试器)来查找我的 bug,并且在我知道我的排序函数工作之后才使用单元测试。

我是不是做错了什么?我以为单元测试就这么简单

1) Write test
2) Write function
3) Test function
4) If test fails, revise function
5) Repeat 3 and 4 until test passes

我用的过程比较像

1) Write test
2) Write function
3) Test function
4) If test fails, debug function until it works correctly
5) Repeat 3 (even though function is already known to work)

我觉得我的流程不是真正的 TDD,因为我的排序函数的设计不是由我编写的测试驱动的。我应该写更多的测试,例如在排序时检查向量中间状态的测试?

最佳答案

测试不应该为您调试代码。

I feel like my process was not truly TDD

你写了一个测试。它发现了一个错误。你修复了这个错误。你的测试通过了。系统有效!

这就是测试驱动开发的本质。当您遇到错误时,您的测试会告诉您,当您完成时,它们会告诉您。

无论如何,因为您没有实现纯粹的 TDD 或纯粹的 OOP 或任何心理障碍而感到内疚。前进并富有成效。

关于unit-testing - 如何对 std::vector 的排序进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1783922/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com