python - 应该如何记录单元测试?

标签 python unit-testing documentation docstring

我正在努力提高我的 Python 项目中测试的数量和质量。随着测试数量的增加,我遇到的困难之一是了解每个测试的作用以及它应该如何帮助发现问题。我知道跟踪测试的一部分是更好的单元测试名称(已解决 elsewhere),但我也有兴趣了解文档和单元测试如何结合在一起。

当单元测试将来失败时,如何记录单元测试以提高其实用性?具体来说,什么是好的单元测试文档字符串?

我很欣赏描述性答案和带有优秀文档的单元测试示例。虽然我只使用 Python,但我对其他语言的实践持开放态度。

最佳答案

我在单元测试中记录的最多的是方法名称:

testInitializeSetsUpChessBoardCorrectly()
testSuccessfulPromotionAddsCorrectPiece()

对于我几乎 100% 的测试用例,这清楚地解释了单元测试正在验证什么,这就是我使用的全部内容。但是,在一些更复杂的测试用例中,我会在整个方法中添加一些注释来解释几行的作用。

我以前见过一个工具(我相信它是用于 Ruby 的),它可以通过解析项目中所有测试用例的名称来生成文档文件,但我不记得名称了。如果您有国际象棋皇后类(class)的测试用例:

testCanMoveStraightUpWhenNotBlocked()
testCanMoveStraightLeftWhenNotBlocked()

该工具会生成一个 HTML 文档,其内容如下:

Queen requirements:
 - can move straight up when not blocked.
 - can move straight left when not blocked.

关于python - 应该如何记录单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1726622/

相关文章:

python - Python 中的伪指针功能

python - 如何使IDLE窗口更具可读性?字体太小我看不清

java - 如何使用构造函数注入(inject)模拟类

python - Django 测试数据库未与自定义测试运行程序一起使用

python - 如何使用 Python 数据类记录类的构造函数?

python - 正则表达式 - 如果不匹配则匹配这个 - Python

c# - 单元测试功能

interface - 为什么 GoDoc 不显示接口(interface)变量?

python - 在记录交互式 session 时如何更改 Sphinx 显示的提示?

python - python中的asyncio.sleep()是如何实现的?