如何使用Python的unittest测试是否引发了警告?

托马斯·诺沃特尼(Tomas Novotny):

我在Python中有一个以下函数,我想用unittest进行测试,如果该函数将0作为参数,它将引发警告。我已经尝试过assertRaises,但是由于我没有提出警告,所以这行不通。

def isZero(i):
    if i != 0:
        print "OK"
    else:
        warning = Warning("the input is 0!") 
        print warning
    return i
ire_and_curses:

您可以使用catch_warnings上下文管理器。本质上,这使您可以模拟警告处理程序,以便可以验证警告的详细信息。有关更完整的说明和示例测试代码,请参见官方文档

import warnings

def fxn():
    warnings.warn("deprecated", DeprecationWarning)

with warnings.catch_warnings(record=True) as w:
    # Cause all warnings to always be triggered.
    warnings.simplefilter("always")
    # Trigger a warning.
    fxn()
    # Verify some things
    assert len(w) == 1
    assert issubclass(w[-1].category, DeprecationWarning)
    assert "deprecated" in str(w[-1].message)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

一旦进入finally块,如何确定是否引发了异常?

您如何断言在JUnit 4测试中引发了某种异常?

测试一个异步函数使用sinon和chai引发了异常

JUnit测试失败,尽管引发了预期的异常

使用python unittest的抽象测试用例

您如何测试Python函数引发异常?

您可以检查Python中的doctest是否引发了异常?

PHPUnit断言是否引发了异常?

JUnit测试使用java.lang.Exception引发了InitializationError:未找到匹配的测试

我是否需要创建要使用unittest测试的类的实例?

Polymer 1.2 FIREBASE警告:用户回调引发了异常

如何使用Unittest测试来测试Python脚本中的标准输入和标准输出?

如何使用xUnit测试ref struct方法是否引发异常?

检查Python 2.7中是否正确引发了异常?

不会引发Python unittest AssertionError

如何检查是否引发了Django ValidationError子类?

如何解决Angular单元测试错误:“在afterAll \ n [object ErrorEvent]中引发了错误”

如何使用Unittest在Python中编写内部类测试方法

如何断言引发了HTTP异常?

使用Microsoft测试工具检查是否引发了异常(以及正确的异常)

如何在xunit中测试是否引发了Event?

如何测试Flutter中是否引发了异常?

如何使用Promise测试角度工厂函数是否在茉莉花中引发错误

如何获取python unittest来测试函数是否返回csv.reader对象?

如何检查当前范围内是否引发了异常?

测试是否在初始化程序中引发了异常

如何使用 Python Unittest 定义测试方法

如何测试是否在 jasmin 中触发了 console.error

使用 selenium 和 unittest Python 编写测试