如何正确使用单元测试(以任何语言)

时间:2010-11-01 18:43:05

标签: python unit-testing testing

我以前从未真正写过单元测试(或测试,真的)。在写完最小的代码以检查错误后,我倾向于经常运行/编译。我最近一直在阅读单元测试,我很好奇如何最好地使用/实现它们。我最近的主要语言是Python,但我认为这是一个非常与语言无关的问题。有没有人对如何正确地做这个有一些提示(或很好的阅读)?

谢谢!

5 个答案:

答案 0 :(得分:4)

答案 1 :(得分:2)

单元测试是一回事,需要考虑的另一件事是测试驱动开发,其中编写测试的行为首先影响最终交付代码的设计/感觉 - 希望更好。我发现这有助于特别是如果在编程开始时没有完全理解问题域。

Clarke Ching用excel做了一个小时谈论TDD。如果你花一个小时阅读这篇文章,你应该明白这一点。

http://www.clarkeching.com/files/tdd_for_managers_and_nonprogrammers_using_excell_and_vba_final.pdf

当xUnit测试模式是一个愉快的阅读时,你知道你已经到了单元测试。 http://www.amazon.co.uk/xUnit-Test-Patterns-Refactoring-Signature/dp/0131495054/ref=sr_1_1?ie=UTF8&qid=1288638075&sr=8-1

最初这可能是一个很大的问题,而且我会建议一些关于重构或TDD的更简洁的东西会更温和地介绍这个引人入胜的主题。

答案 2 :(得分:1)

我喜欢这个:The Art of Unit Testing。示例在.Net中,但这应该不是问题。我不知道任何有Python例子的书。

答案 3 :(得分:0)

我强烈建议使用nose之类的框架,它构建于unittest之上,并遵循相同的原则,但需要将大部分脚手架放在一边。

答案 4 :(得分:0)

我在编写单元测试时使用的开源实用程序库是ApprovalTests - 还有一个关于如何将此库与.Net语言一起使用的YouTube视频系列(这些想法可以应用于其他语言和ApprovalTests库也可用于其他langauges(Java,PHP,更多)。