Q
单元测试入门
23
A
回答
22
好吧,这里有一些谁不单单测试他应该...咳嗽的一些最佳做法。
- 确保您的测试试验one 件事,一件事而已。
- 随时编写单元测试。您最好写before您正在测试的代码。
- 请勿单元测试GUI。
- Separate your concerns。
- 最小化测试的依赖关系。
- 模拟behviour与mocks。
1
xUnit系列是单元测试的中流砥柱。它们被集成到Netbeans,Eclipse和其他许多IDE中。它们为单元测试提供了一个简单的,结构化的解
我在编写测试时总会尝试做的一件事是尽量减少外部代码的使用。我的意思是:我尽量尽量减少测试的设置和拆卸代码,尽量避免使用其他模块/代码块。编写良好的模块化代码在安装和拆卸时不需要太多的外部代码。
3
所谓的xUnit框架被广泛使用。它最初是作为SUnit为Smalltalk开发的,演变成用于Java的JUnit,现在还有许多其他实现,例如用于.Net的NUnit。这几乎是事实上的标准 - 如果你说你正在使用单元测试,其他大多数开发人员会认为你的意思是xUnit或类似的。
3
“最佳实践”的一个很好的资源是Google Testing Blog,例如Writing Testable Code最近的帖子是一个很好的资源。具体来说,他们的“厕所测试”系列每周帖子非常适合贴在您的魔方或厕所周围,所以您始终可以考虑测试。
0
NUnit是适用于任何.NET语言的好工具。
单元测试可以以许多方式来使用:
- 测试逻辑的代码单元
- 增加分离。如果你不能完全测试一个函数或代码段,那么构成它的部分就太相互依赖了。
- 驱动发展,有些人写测试之前,他们编写的代码进行测试。这迫使你去思考一下你想要的代码做,什么,然后给你的时候,你已经来达到的是一个明确的指导方针。
14
你可能想看看TDD on Three Index Cards和Three Index Cards to Easily Remember the Essence of Test-Driven Development:
卡#1。鲍勃叔叔的三条法则
- 除了通过失败的测试之外,不写任何生产代码。
- 只写足够的测试来证明失败。
- 只写足够的产品代码来通过测试。
卡#2:首要原则
- 快速:心灵-麻木快,在数百或数千每秒。
- 隔离:该测试清楚地分离故障。
- 重复:我可以反复运行它,它会通过或每次失败一样。
- 自我验证:测试是明确地传递失败。
- 及时:产于与小代码的变化步调一致。
卡#3:TDD
- 红色的核心:测试失败
- 绿色:测试通过
- 重构:干净的代码和测试
0
不要忘记重构支持。 .NET上的ReSharper提供了对缺失代码的自动重构和快速修复。这意味着如果你写了一个不存在的东西,ReSharper会询问你是否想创建缺少的东西。
约翰嗨,你可以解释为何你不单元测试GUI? – itsmatt 2008-09-17 19:05:51