测试提供给mock函数的类实例是否具有正确的属性

时间:2017-05-22 16:18:22

标签: python unit-testing mocking python-mock

我有一个课程MyClass和两个职能my_functionmy_other_functionmy_other_function来电my_function。我想测试my_other_function并模拟my_function。问题是,my_functionMyClass的实例作为其参数,并访问它的foo属性。 my_other_function会更改foo属性。我想测试对模拟my_function的调用使用正确的参数,这涉及确保foo实例的MyClass属性每次都是正确的。我不知道该怎么做,因为当我访问模拟的call_args_list属性时,该类已被修改,我只能看到它最近的状态

import mock
class MyClass(object):
    def __init__(self):
        self.foo = 'a'

def my_function(instance):
    print instance.foo


def my_other_function():
    myinstance = MyClass()
    for i in ['a','b','c']:
        myinstance.foo = i 
        my_function(myinstance)


def test_my_other_function():
    with mock.patch(__name__+'.my_function') as mock_function:
        my_other_function()
        mock_function.call_args_list
        # Test that the instance passed to my_function had the correct foo attribute each time

calls_args_list中的每次通话都会显示myinstance的最新状态,其中foo为' c'

0 个答案:

没有答案