1

lib/thing.py

class Class(object):
    def class_function1(self):

app/thing.py

def function2(class_object):
    class_object.class_function1()

では、モック化された Class() オブジェクトを使用して function2 が呼び出されたときにパッチを適用して、妨げられないようにする必要がある を発生test/test_thing.pyさせたいと考えています。このようなもの(機能しません):lib.thing.Class.class_function1AttributeErrortest_function2

def test_function2(self):
    mocked_class = mock.MagicMock(name="class", spec_set=lib.thing.Class)
    with assertRaises(AttributeError):
        with patch ('lib.thing.Class.class_function1', side_effect=AttributeError):
            function2(mocked_class)
4

1 に答える 1

1

パッチを完全に削除し、モック化されたクラス オブジェクトで side_effect を使用しました。

def test_function2(class_object):
    mocked_class = mock.MagicMock(name="class", spec_set=lib.thing.Class)
    mocked_class.class_function1.side_effect = AttributeError("sorry for the pseudo code")
    with assertRaises(AttributeError):
         function2(mocked_class)
于 2015-10-26T21:35:21.440 に答える