Python:'unittest'是否有"doctest"没有的东西?

seb*_*piq 0 python doctest unit-testing

问题很清楚,但是请注意,我不是在询问功能比较(已经有很多功能),我也不会问你喜欢哪一个!

我自己明确偏爱doctests,我将它们用于所有内容,即使这些不用于文档.但我想知道的是:你有什么可以用unitests做的,你不能用doctests做什么?

Lie*_*yan 5

人们普遍存在一种误解,即doctest用于测试代码.doctest用于测试您的文档.doctest旨在测试您的文档是否与函数/类/模块实际执行的操作相匹配,并在文档演变时文档中的示例代码是否过时时提醒您.

虽然doctest可能会揭示代码中的错误,但它并不是它的主要目的(例如代码更改可能会解决单元测试的测试用例代码中的错误,但测试测试用例代码并不是unitetest的主要目的)

即使这些不是用于文档

docstring由help()函数自动提取出来,成为函数/类/模块的文档; 你不能创建文档字符串而不是文档.您的模块/功能/类的用户(或者您在几天内)可能会尝试对您的函数/类/模块执行help(),并且会对文档是一堆代码感到惊讶.