|
|
1
2
小心。用于显示单元测试计数、覆盖率、代码质量度量、行计数、签入计数等度量的奇特工具可能很危险。 在一些项目经理手中 . 项目经理(不了解软件开发的实际情况)可能会沉迷于度量标准,并且无法意识到:
你可能会遇到一些愚蠢的情况,在这种情况下,管理者会向开发人员传达这样的信息,即他们应该(例如)尝试为代码实现最大的单元测试覆盖率,而这是完全没有必要的。时间花在无意义的工作上,重要的工作没有完成,最后期限也没有完成。
|
|
|
2
3
关于单元测试框架,主要有两个:JUnit和TestNG。两者都有其独特的优势,而且都具有同等的性能。JUnit的主要优点是(在我看来)它的默认配置为Eclipse插件,允许简单的测试调用。 关于模拟框架,我不认为它们是测试方法的必需部分。当然,它们是有用的,但它们解决了一个特定的目的:测试一个行为(与测试一个接口相反——JUnit允许的行为)。使用模拟框架,您可以测试特定类如何实现特定接口。你需要吗?很明显。你先要吗?我不知道。 关于规则,我发现唯一有用的就是简单(一如既往):“总是测试至少破坏一次的代码”。考虑一下你的bug追踪器。每次遇到错误时,都必须进行单元测试以确保没有回归。在我看来,这是获得质量代码的更快方法。 关于花哨和高效的输出,我可以向您推荐足够多的连续集成服务器。( Hudson 很明显。它将在每次提交代码时运行您的所有测试套件,以确保没有副作用。它将生成显示测试运行次数的图形,等等。它还可以集成代码覆盖工具和图形。这个持续集成服务器将真正成为您的测试伙伴。 |
|
|
3
3
|
|
|
4
2
如果你还没有这样做,请阅读 Working Effectively with Legacy Code 通过 Michael Feathers . |
|
|
5
0
我已经将单元测试改装成C++项目,这是不愉快的。 我做的第一件事是确定大部分“行动”发生在哪里。然后使用它开始对可以轻松测试的功能进行单元测试。 然后,一旦你有了更简单的方法,你就可以开始恶意地扩展覆盖范围——攻击那些依赖性更小的函数,在调试器中运行它们几次,看看传入了什么值,然后用这些值编写单元测试,以确保你不会破坏任何东西。 不要期望快速修复——需要3周(6小时,一周5天)才能获得20%的覆盖率,但代码将80%的时间花在代码上,所以我认为它花了很长时间,并且发现了不少错误。 |
|
|
6
0
关于测试覆盖率,我认为当您将单元测试引入到现有项目中时,开始设定覆盖率预期还为时过早。您应该首先确保实际上可以集成测试框架并从覆盖工具中获取报告。一旦你这样做了,你就可以开始监控覆盖率,以及 然后 你可以考虑目标。 |
|
|
wavesinaroom · 断言结构向量长度 1 年前 |
|
|
Tim Kirkwood · 比较空数据帧 1 年前 |
|
Kamran Khan · 使用单元测试ASP。NET核心 2 年前 |
|
|
paymer · 为什么我的代码没有删除我的单元测试生成的zip文件? 2 年前 |
|
|
Ricky Mo · 角度测试如何模拟导入的const 2 年前 |
|
|
Natty · Visual Studio中缺少“代码覆盖率结果” 2 年前 |