モックを使用してテストしたいインスタンス メソッドがあります。このインスタンス クラスのメソッドの 1 つを、引数を取る別のメソッドに置き換えようとしています。
テストするクラス:
class ClassToTest():
def compute(self):
result = self._get_xml()
return result
def _get_xml(self):
#get xml here
return xml
テストファイル:
from mock import patch
class ClassTest():
@patch('classToTest._get_xml', _get_fake_xml)
def computetest(self):
test = ClassToTest()
toassert = test.compute()
#assert whatever
#self.assert(...)
def _get_fake_xml(self, objects, filename):
py_file = os.path.abspath(__file__)
py_dir = os.path.dirname(py_file)
xml_file = os.path.join(py_dir, filename)
xml_tree = objectify.parse(xml_file)
return xml_tree.getroot()
return xml
_get_fake_xml メソッドの引数をパッチに追加するにはどうすればよいですか
私が試してみました :
@patch('classToTest._get_xml', _get_fake_xml(mock.Mock(), 'filenam.xml'))
しかし、それはうまくいきませんでした。次に、ファイル名をグローバル変数として作成しようとしましたが、次のエラーが発生しました。
ClassToTest インスタンスに self.filename が存在しません。
基本的に、_get_fake_xml を他のファイル名で再利用できるようにしたいと考えています。
なにか提案を?