为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Pytest 测试错误消息

如何使用 Pytest 测试错误消息

守候你守候我 2022-06-14 16:45:02
我想找到一种方法来测试我的代码是否使用 pytest 针对给定错误返回正确的错误消息我的代码适用于字典,在某些情况下,某些键可能未定义。在下面的示例中,tag变量由用户提供,在某些情况下,该键可以是未定义的。然后我添加了一个 try/except 语句来捕获这个异常并向用户返回一条错误消息,解释问题。try:    species = self.species[tag]except KeyError:    print(f"Error: the species {tag} is not defined")尝试为此代码编写单元测试时出现我的问题。如何检查我的代码是否返回适当的错误消息?我可以编写一个自愿提供错误的测试,tag然后检查标准输出,但如果我决定更改错误消息,我将不得不重写此测试。在“不要重复自己”的方法中似乎不太合适。也许我什至一开始都没有正确处理错误,并且有更好的方法来使用 Python。
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

我相信你应该改变你的代码结构来实现你想要的。


class Species:


    def myMethod(tag):

        try:

            species = self.species[tag]

        except KeyError:

            raise YourCustomError(f"Error: the species {tag} is not defined")

然后,您可以编写 pytest 函数来检查在使用带有错误标签的 myMethod 时是否引发了 YourCustomError。请注意,您可以执行以下操作,而不是 YourCustomError:raise KeyError("custom message")


查看完整回答
反对 回复 2022-06-14
  • 1 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号