2

私はこれを行うかどうかを知っています:

import mock
my.factory = mock.MagicMock()

次に、my.factory のすべてがモックされますが、fatory にはメソッドがあります。渡した場合はモックオブジェクトを返し、a を渡した場合はcreate_fruit(self, type)オブジェクトを返します。'apple''apple''banana''banana'

mockこれはモジュールで実装できますか? ドキュメントで明確に見つけることができません: https://pypi.python.org/pypi/mock

4

1 に答える 1

0

はい、できます。ただし、そのための関数を定義する必要があります。

from mock import Mock

def mock_create_fruit(fruit):
    if fruit not in ('apple', 'banana'):
        raise AssertionError('create_fruit not called with an allowed type, was %s' % (fruit,)
    return type(fruit, (object,), {})()

my.factory.create_fruit = Mock(side_effect=mock_create_fruit) 

mock_create_fruit 関数の最後の行は、その場でクラスを作成し、そのインスタンスを作成して、呼び出し元に返します。

于 2013-12-03T11:33:39.860 に答える