2024-09-27 19:33:53 发布
网友
我所在项目的一位开发人员认为doctest和单元测试一样好,如果一段代码被doctested,它就不需要进行单元测试。我不相信这是事实。有谁能提供一些可靠的、理想的例子来支持或反对doctest取代单元测试的必要性的论点吗?在
谢谢你 -丹尼尔
编辑:有谁能提供一个参考,说明doctesting不应该取代单元测试吗?在
事实上没有支持或反对doc测试的论据。它们只是测试。实际上,对于python 2.4,有一种方法可以根据您的doctest创建单元测试套件: http://docs.python.org/library/doctest.html#unittest-api
在某种意义上,您可以将doc测试看作单元测试的一个子集,至少从功能的角度来看是这样的。在
但是python文档建议使用doctest进行以下操作:
他们的论点是,如果你在文档中编写测试,你将被迫同时编写更好的文档和测试。与单独编写单元测试不同的是,很少添加足够的文档,而且它们往往停滞不前并过时。在
参见: http://docs.python.org/library/doctest.html#soapbox
我想,对于集成测试这样的东西,编写doctest会更困难。但是,正如您在python和Django上看到的那样,它们广泛地使用doctest,从而生成更易于理解的文档和教程。在
这完全取决于你的项目。没有“正确”的测试方法。在
另外,我建议您看看Code Complete 2书,因为您可能会发现单元测试并不是确保软件无故障的最佳方法。在
Python标准库中有一个具体的例子,它让我相信单靠doctest是不够的,即decimal模块。它有超过60000个单独的测试用例(在Lib/test/decimaltestdata中);如果所有这些都重写为doctest,十进制模块将变得非常笨拙。测试的数量可能会减少,同时仍能提供良好的覆盖率,但许多数值算法非常复杂,以至于您需要大量的单独测试来覆盖所有可能的分支组合。在
decimal
事实上没有支持或反对doc测试的论据。它们只是测试。实际上,对于python 2.4,有一种方法可以根据您的doctest创建单元测试套件: http://docs.python.org/library/doctest.html#unittest-api
在某种意义上,您可以将doc测试看作单元测试的一个子集,至少从功能的角度来看是这样的。在
但是python文档建议使用doctest进行以下操作:
他们的论点是,如果你在文档中编写测试,你将被迫同时编写更好的文档和测试。与单独编写单元测试不同的是,很少添加足够的文档,而且它们往往停滞不前并过时。在
参见: http://docs.python.org/library/doctest.html#soapbox
我想,对于集成测试这样的东西,编写doctest会更困难。但是,正如您在python和Django上看到的那样,它们广泛地使用doctest,从而生成更易于理解的文档和教程。在
这完全取决于你的项目。没有“正确”的测试方法。在
另外,我建议您看看Code Complete 2书,因为您可能会发现单元测试并不是确保软件无故障的最佳方法。在
Python标准库中有一个具体的例子,它让我相信单靠doctest是不够的,即
decimal
模块。它有超过60000个单独的测试用例(在Lib/test/decimaltestdata中);如果所有这些都重写为doctest,十进制模块将变得非常笨拙。测试的数量可能会减少,同时仍能提供良好的覆盖率,但许多数值算法非常复杂,以至于您需要大量的单独测试来覆盖所有可能的分支组合。在相关问题 更多 >
编程相关推荐