如何使用pytest和unitest.mock进行故障注入和后续恢复

2024-04-18 21:15:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个Python应用程序,它处理队列中的任务。如果任务意外失败(即机器崩溃),队列将重新发送任务。我的任务不是自然幂等的,因此我必须编写额外的代码来正确处理重传,并且我希望能够在代码中的特定位置测试失败。因为我想验证我的任务是否可以正确恢复,所以我希望这些失败只发生在第一次尝试时,然后在后续尝试中成功

我现有的测试框架使用pytest,所以我认为unittest.mock与pytest fixture相结合可能是实现这种测试的一种很好的方法。我想知道是否有人以前有过这类任务的经验,并能就如何最好地创建这一系列测试提供任何建议。我在this stackoverflow post中看到一条建议,pytest.mock应该在fixture中使用yield,但我的理解是,我只能提供一个yield,所以我不确定如何为以后的测试步骤提供不同的行为。是否有我应该遵循的最佳实践


Tags: 方法代码机器框架应用程序队列pytest经验