python - Python doctest 是否不需要单元测试?

标签 python unit-testing doctest

我所在项目的一位开发人员认为,文档测试与单元测试一样好,如果一段代码经过文档测试,则不需要进行单元测试。我认为情况并非如此。任何人都可以提供一些可靠的、理想地引用的示例来支持或反对 doctest 取代单元测试的需要的论点吗?

谢谢 -丹尼尔

编辑:任何人都可以提供表明文档测试不应取代单元测试的引用吗?

最佳答案

我 (ab) 使用 doctest 代替 unittest,回到我开始 gmpy 的时候很多年前的项目——你可以浏览它的源代码,看到所有的功能都用 doctests 进行了彻底的测试(这个功能是由一个 C 编码的 Python 扩展提供的,上次我用它进行覆盖测量时,我的覆盖率超过了 95%) .我为什么要那样做?因为 doctestgmpy 都是全新的,我很好奇我能把它推到什么程度。

答案:确实很远——但绝对不值得(新鲜感消失了,但你不想重写所有测试,这就是为什么 gmpy 的测试仍然是全文档测试)。 doctests 的极端脆弱性,即使是消息中最微小的拼写错误也会破坏测试,当他们以这种方式被滥用时,这真的很麻烦。这有点像传统的集成测试,它基于将输出与“黄金”(已知良好)预期输出进行比较:第一次编写很容易,但在修复无端测试故障几年后,您会在闲暇时后悔;- ).

如果您发现 unittest 的风格繁琐,还有其他优秀的替代品仍然意味着用于单元测试,例如 py.testnose -- doctest 实际上是为了不同的目的(支持文档,而不是通用单元测试),当然值得添加你为文档目的编写的任何 doctests您的测试电池,值得用它替换单元测试来进行测试维护。

关于python - Python doctest 是否不需要单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2642282/

相关文章:

python - Spark 程序在独立集群上运行时给出奇怪的结果

java - 我应该出于什么原因 mock ?

python-2.7: 在类的 setter 方法中忽略了 doctests

python - 使用 pyflakes/pylint 忽略 doctests/docstrings

python - Sublime Text 插件 - 如何查找选择中的所有区域

python - 正则表达式未正确验证日期

java - 单元测试和白盒测试

javascript - 首次对返回 Observable 的方法进行 Angular Testing

python - 如何将 doctests 与 unittest 的测试发现相结合?

python - 音频处理