pytest 如何测试函数中抛出的异常
一般Python中异常可以用 raise 来抛出,此时单测中想要测试错误用例是否触发异常了,可以用pytest中的 with pytest.raises(xxx) 如下:
import pytest
import unittest
class Info(object):
"""info class"""
def __init__(self, name):
"""
初始化
Args:
name (str): 用户名称
"""
if name == "":
raise Exception("name is empty")
self.name = name
class TestInfo(unittest.TestCase):
"""
Testcase for Info
"""
def test_init(self):
some_value = ""
# 判断是否raise了一个Exception
with pytest.raises(Exception):
one = Info("")
expected = ""
assert some_value == expected
或者用mock的方法,在try部分的函数中,模拟一个异常(用side_effect)
res_get = 'want_to_get'
mock_cloud_resource_get = mock.patch('xxx.models.test', return_value=res_get, side_effect=Exception("test"))
会触发Exception("test")

浙公网安备 33010602011771号