大佬教程收集整理的这篇文章主要介绍了如何从python3中的另一个模块模拟变量?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
下面是我的源代码
#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_R_20_11845@ethod(self):
with mock.patch('src.MANDATORY_FIELDS') as mocked_mf:
mocked_mf.return_value = ['a','c','d']
self.asserTraises(ValIDationException,check_mf)
当我运行此代码时,测试未通过。它抛出一个错误说
AssertionError: ValIDationException not raised by check_mf
为什么会出现这个错误? 仅供参考,当我在运行单元测试时尝试在 src.py 文件中打印 MANDATORY_FIELDS 时,我得到了这个
<Magicmock name='MANDATORY_FIELDS' ID='139766761401144'>
为什么嘲笑在这里不起作用?
变量 return_value
没有 @H_993_5@mANDATORY_FIELDS。只需将 new
值作为
例如(Python 3.9.2)
src.py
:
from configs import MANDATORY_FIELDS
class ValidationException(Exception):
pass
def check_mf():
print(MANDATORY_FIELDS)
if set(MANDATORY_FIELDS).issubset(['a','b','c']):
return True
else:
raise ValidationException("Error in mandatory fields")
configs.py
:
@H_993_5@mANDATORY_FIELDS=['a']
test_src.py
:
from unittest import TESTCase,main,mock
from src import check_mf,ValidationException
class TestMailSenderUtil(TESTCasE):
def test_R_20_11845@ethod(self):
with mock.patch('src.MANDATORY_FIELDS',['a','c','d']) as mocked_mf:
self.asserTraises(ValidationException,check_mf)
if __name__ == '__main__':
main()
单元测试结果:
['a','d']
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
Name Stmts Miss Cover Missing
----------------------------------------------------------------------
src/stackoverflow/68162471/configs.py 1 0 100%
src/stackoverflow/68162471/src.py 8 1 88% 9
src/stackoverflow/68162471/test_src.py 8 0 100%
----------------------------------------------------------------------
@R_841_10586@L 17 1 94%
以上是大佬教程为你收集整理的如何从python3中的另一个模块模拟变量?全部内容,希望文章能够帮你解决如何从python3中的另一个模块模拟变量?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。