如何用引发异常pytest一个python函数

时间:2019-01-24 06:19:45

标签: python unit-testing exception pytest

我的文件夹结构如下:

|- src
    |- __init__.py
    |- funcA.py
    |- util.py
|- tests
   |- __init__.py
   |- test_funcA.py
   |- test_util.py

我的目标是在funcA.py中测试一个功能

def f():
   try:
     helper()
   except Exception as e:
     raise Exception('error: fail to call helper')

util.py中的帮助器功能

def helper():
   try:
     #do something
   except Exception as e:
     raise Exception('error: fail to do something') 

我为f()编写的单元测试未涵盖这两行except Exception as e: raise Exception('error: fail to call helper')

这是我的f测试用例

def test__f():
    with mock.patch('src.utils.helper', side_effect=Exception('fail to call helper')):
        from src import funcA
        with pytest.raises(Exception):
            funcA.f()

如何编写单元测试以涵盖f的引发异常?谢谢

1 个答案:

答案 0 :(得分:1)

我认为“ src.utils.helper”是错误的。我猜您应该使用“ src.funcA.helper”。