如何解决在调用模拟时检查dict是否有条目
class A:
def __init__(self,someDict,someOtherObject):
self._someDict = someDict
self._someOtherObject = someOtherObject
def func(self):
self._someDict["key"] = None
self._someOtherObject.foo()
现在,我想检查当前被传递给foo的字典中是否存在"key"
。
class Test( unittest.TestCase ):
def test_funcShouldAddKeyToDictionaryBeforeCallingFoo(self):
objectMock = Mock()
someDict = {}
aUnderTest = A(someDict,objectMock)
aUnderTest.func()
# assert "key" in someDict when called objectMock.foo()
如何在调用foo之前检查字典中是否已有条目?
解决方法
您可以将foo
替换为执行检查的函数:
class Test(unittest.TestCase):
def test_funcShouldAddKeyToDictionaryBeforeCallingFoo(self):
def check_dict():
self.assertIn("key",someDict)
objectMock = Mock()
someDict = {}
aUnderTest = A(someDict,objectMock)
objectMock.foo = check_dict # "check_dict" will be called instead of "foo"
aUnderTest.func()
这样,您可以根据需要在经过测试的代码中调用foo
时执行检查。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。