【发布时间】:2021-09-10 16:56:50
【问题描述】:
下面是我的源码
#src.py
from common.configs import MANDATORY_FIELDS
def check_mf():
if set(MANDATORY_FIELDS).issubset(['a','b','c']):
return True
else:
raise Exception("Error in mandatory fields")
这是我的测试代码
#test_src.py
from unittest import TestCase, main, mock
from src import check_mf
class TestMailSenderUtil(TestCase):
def test_method(self):
with mock.patch('src.MANDATORY_FIELDS') as mocked_mf:
mocked_mf.return_value = ['a','b','c','d']
self.assertRaises(ValidationException, check_mf)
当我运行这段代码时,测试没有通过。它会抛出一个错误,说明
AssertionError: ValidationException not raised by check_mf
为什么会出现这个错误? 仅供参考,当我在运行单元测试时尝试在 src.py 文件中打印 MANDATORY_FIELDS 时,我得到了这个
<MagicMock name='MANDATORY_FIELDS' id='139766761401144'>
为什么模拟在这里不起作用?
【问题讨论】:
标签: python-unittest python-unittest.mock