python - 在 python 中对 "FileNotFoundError"进行单元测试

标签 python unit-testing python-3.x mocking

我有以下代码,想在给定函数引发“FileNotFoundError”时取消测试

def get_token():
try:
    auth = get_auth() # This function returns auth ,if file exists else throws "FileNotFoundError
except FileNotFoundError: 
    auth= create_auth()
return auth

我无法弄清楚如何测试引发“FileNotFoundError”且不调用 create_auth 的条件。

任何提示将不胜感激

谢谢

最佳答案

在单元测试中,您需要模拟 get_auth 函数并使用 .side_effect 属性使其引发 FileNotFoundError :

@mock.patch('path.to.my.file.get_auth')
def test_my_test(self, mock_get_auth):
    mock_get_auth.side_effect = FileNotFoundError

然后您可以测试是否实际调用了 create_auth:

@mock.patch('path.to.my.file.create_auth')
@mock.patch('path.to.my.file.get_auth')
def test_my_test(self, mock_get_auth, mock_create_auth):
    mock_get_auth.side_effect = FileNotFoundError
    get_token()
    self.assertTrue(mock_create_auth.called)

关于python - 在 python 中对 "FileNotFoundError"进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26918331/

相关文章:

python-3.x - 如何实现rtree来计算相交面积?

python-3.x - Flask Debug模式在使用 python 运行时给出 "OSError: [Errno 8] Exec format error"

python - 在 Python 3.5 64 位上通过 pip 安装 OpenCV

python - 以最小误差求解非线性方程组

python - python 根据一个字典的键和另一字典的相应值创建一个字典

unit-testing - 带图的 TDD

java - WebAppConfiguration 不能很好地与 ContextConfiguration 配合使用?

python - 并排条形图

python - 用 5 分钟范围内最接近的行值填充缺失值

Python 模拟失败调用断言