关于在单元测试中异常处理模块输出测试结果时报错

image.png

在写单元测试用例的时候,我们将断言包装一层异常处理后,希望输出测试的结果,如图中代码所示,在 except 中定义了一个 TestResult 变量,在 try/except 之后打印测试结果,执行代码报错:
UnboundLocalError: local variable 'TestResult' referenced before assignment

    有道翻译结果大致为:    局部变量未赋值前被引用

    原因:断言成功后,代码会跳过except分支直接执行下面并列的print内容,
              TestResult的赋值是放在except当中,因此未读取到TestResult的值,从而报错

    解决办法:可以分别在try、except里边进行变量赋值,例如在try里面定义TestResult='pass',在except中定义TestResult=‘failed’。
    另外需要注意的是,如果我们希望断言不通过的情况下输出failed,需要注释掉抛出异常的那部分raise e,不然代码抛出异常后就不会接着往下走了。
5 回帖
请输入回帖内容 ...
  • huahua

    😃 谁要是发错了 我就把他抓过来看你的博客。

  • 其他回帖
  • fans

    顶一个

  • star

    棒棒哒😘 💐 💐

  • 404

    😬

  • 查看更多回帖