首页 > 解决方案 > 用 Python 编写单元测试

问题描述

我有一个任务,其中我有一个包含一些示例数据的 csv 文件。任务是在应用一些数据验证规则后,将 csv 文件中的数据转换为其他格式,如 JSON、HTML、YAML 等。

现在我还应该在 pytest 或 Python 中的 unittest 模块中为此编写一些单元测试。

我的问题是我如何实际为此编写单元测试,因为我将它们转换为不同的 JSON/HTML 文件?我是否应该准备一些示例文件,然后在我的单元测试中与它们进行比较。

我认为只能使用 unittest 测试任务中的数据验证部分,而不是创建不同格式的文件,对吗?

任何想法都会非常有帮助。

提前致谢。

标签: pythonpytestpython-unittest

解决方案


您应该进行功能测试,因此测试从 csv 文件到最终结果的整个管道,但单元测试是关于检查各个步骤是否有效。

例如,您可以正确读取 csv 文件吗?当您不提供 csv 文件时,它是否会按预期失败?你能检查每个验证单元吗?他们在应该失败的时候失败了吗?他们是否传递了有效数据?

当然,结果也必须经过测试。从已知的内部表示开始,生成的 json 是否有效?它是否包含所有必需的数据?yaml、HTML 也是如此。您不应该测试格式,而是真正输出什么以及它是否正确。

您应该始终在工作流程的每个步骤中测试有效数据是否通过,而错误数据是否通过。


推荐阅读