我所在项目的一位开发人员同事认为文档测试与单元测试一样好,并且如果一段代码经过文档测试,则不需要进行单元测试。我不相信情况是这样。任何人都可以提供一些可靠的、理想引用的例子来支持或反对文档测试取代单元测试需求的论点吗?
谢谢
-丹尼尔
编辑:任何人都可以提供参考,表明文档测试不应取代单元测试吗?
我(滥用)使用过doctest
替代unittest
,当我开始我的gmpy http://code.google.com/p/gmpy/许多年前的项目——您可以浏览其源代码,并看到所有功能都经过 doctests 彻底测试(该功能由 C 编码的 Python 扩展提供,上次我对其进行覆盖率测量时,覆盖率超过 95%) 。我为什么这么做?因为doctest
是全新的,一如既往gmpy
,我很好奇我能把它推到什么程度。
答案:确实很远——但绝对不值得(新鲜感逐渐消失,但你不想重写所有测试,这就是为什么 gmpy 的测试仍然是全文档测试)。文档测试极其脆弱,即使消息中最微小的拼写错误修正也会破坏测试,当它们被这样滥用时,这确实是一个麻烦。这有点像传统的集成测试,基于将输出与“黄金”(已知良好)的预期输出进行比较:第一次很容易编写,但在修复无缘无故的测试中断几年后,您会在闲暇时后悔;- )。
如果你发现unittest
的风格繁重,还有其他优秀的替代品仍在meant用于单元测试,例如py.test http://codespeak.net/py/dist/test/ and nose http://code.google.com/p/python-nose/ -- doctest
实际上是为了不同的目的(支持文档,而不是通用单元测试),当然值得添加您编写的任何文档测试出于文档目的到你的测试电池,它是not值得头痛的测试维护替换用它进行单元测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)