与其他模块进行单元测试main.py

时间:2018-07-11 18:56:21

标签: python unit-testing

这是一个概念性问题。我正在对我编写的具有多个模块的脚本进行单元测试。我有一个main.py和formatting.py。我的格式化覆盖率是100%,但main.py是30%。在我的主体中,我只是调用了格式化内的所有函数。我是否需要直接直接再次对它们进行测试?这似乎是在浪费时间?也许我的理解不正确。预先感谢

3 个答案:

答案 0 :(得分:1)

通常,诀窍是测试外部功能本身是做什么的,而不是测试已调用的其他函数。如果实际上调用了内部函数,这不是问题,只需避免再次对其进行测试。

但是,如果您想避免调用内部函数,则可以尝试依赖注入或模拟。

如果您的外部功能非常简单,则可以放弃对其进行测试,这不是100%的覆盖率。

答案 1 :(得分:1)

单元测试的一个好的经验法则是:

  • 将代码与执行逻辑的部分和执行输入/输出的部分分开
  • 单元测试执行逻辑的部分
  • 不对进行I / O的部件进行单元测试

但是您如何知道该程序将如何工作?那么,一些集成测试怎么样?例如,如果您正在编写命令行脚本,那么集成测试可能会使用一些输入在整个脚本中运行该脚本,并检查脚本是否执行了正确的操作,甚至不考虑其结构。

根据您的需求和脚本的大小,您可能决定进行单元测试,集成测试或同时进行这两种测试。

答案 2 :(得分:1)

内部零件经过测试的事实使您可以通过减少新的更高级别方法所需的测试次数来利用它。

在这些级别之间总是会有一些冗余,但是合理而直接的接缝将使您对新级别进行很少的测试。

其他答案中的人正在谈论将这些测试视为集成测试,但我要说的是,您还需要对上层函数本身进行一些测试,所有已测试的依赖关系都将被模拟和排除。 并非总是必要的,但是请注意,否则您将最终进行混合测试,因为顶层有一项新功能。