0
私はこれは私がそれを行う方法であるクラスA からA.method1をテストする必要があるいくつかのPythonのクラスにmockでpython unboundメソッドをテストする方法は?
Class A(object):
def __init__(self, dep1, dep2, *args, **kwargs):
self.prop1 = dep1
self.prop2 = dep2
def method1(self):
self.prop3 = self.prop1.make_action()
return
を持っている:
import pytest
import mock
def test__method1():
"""Ensure prop3 has been set from a.prop1.make_action() returned value"""
a = mock.MagicMock(spec=A)
a.prop1 = mock.Mock()
a.prop2 = mock.Mock()
a.prop1.make_action.return_value = "val1"
A.method1(a)
assert a.prop1.make_action.call_count == 1
assert a.prop3 == "val1"
が、それはこのようなテストを行うための最善の方法です1つ、または私は何か間違っている? を追加しました: は、まず私はこのような法1を呼び出そうとしました:
a.method1 = A.method1
a.method1()
しかし、それは仕事をdidn`tの。
そして今私はまた、a.prop1とa.prop2をモックする必要があります。しかし、場合によってはの仕様をに設定しないと、prop1とprop2をモックする必要はありません。すでに存在しています。これらは、私は今、私はこのようにするこの質問
私には正常に見えます。どのような問題がありましたか? 'prop2'は' A.method1'がそれに触れないので、全く設定されないままにすることができます。 –