如果我们使用多个断言,第一个断言失败,我应该如何继续我的脚本?

问题描述 投票:0回答:1

如果我们使用了多个断言,第一个断言就会失败。如果两个文本不相等,则assert.Equal(预期文本,实际文本)测试将失败,如果没有测试失败,我应该如何继续脚本中的下一个断言,最后测试将显示所有错误。我怎样才能做到这一点?

python unit-testing automated-tests
1个回答
2
投票

每个测试多个断言在某种程度上是一种反模式 - 理想情况下,测试应编写为仅在一个方面进行断言。这使得测试套件具有足够的粒度,使得失败的测试可以准确地识别任何问题。

如果您要对一系列情况进行断言,通常可以通过参数化来实现(例如

pytest.mark.parametrize
),这允许数据驱动的测试。通过从一个测试代码生成多个测试,可以消除测试代码的重复。

在测试的不同阶段进行断言可能表明该测试同时测试了太多东西,在这种情况下,我建议尝试将断言分成单独的测试,每个测试都有描述性名称。但是,如果您确实想测试具有累积失败的较长流程的步骤(并且这样做是可能/安全的),则插件中对此的支持有限pytest-check

© www.soinside.com 2019 - 2024. All rights reserved.