私は単純なテストをパイソンで作ろうとしていますが、私はモックプロセスをどのように達成するかを理解できません。pythonクラス全体をモックする
これはクラスとDEFコードです:
class FileRemoveOp(...)
@apply_defaults
def __init__(
self,
source_conn_keys,
source_conn_id='conn_default',
*args, **kwargs):
super(v4FileRemoveOperator, self).__init__(*args, **kwargs)
self.source_conn_keys = source_conn_keys
self.source_conn_id = source_conn_id
def execute (self, context)
source_conn = Connection(conn_id)
try:
for source_conn_key in self.source_keys:
if not source_conn.check_for_key(source_conn_key):
logging.info("The source key does not exist")
source_conn.remove_file(source_conn_key,'')
finally:
logging.info("Remove operation successful.")
そして、これは実行機能のための私のテストで:
@mock.patch('main.Connection')
def test_remove_execute(self,MockConn):
mock_coon = MockConn.return_value
mock_coon.value = #I'm not sure what to put here#
remove_operator = FileRemoveOp(...)
remove_operator.execute(self)
がメソッドを実行するので、私が必要とする、接続を試みますそれを嘲笑するために、私は本当のつながりを作りたいと思うのではなく、ちょうど何か偽物を返す。どうしたらいいですか?で述べたように、あなたはいつもあなたがモックしようとしているものが使用される場合に、それをモックする必要があることを理解することが非常に重要である
実際に何をテストしようとしていますか?通常は、テストしているコードによって呼び出され、モックを直接呼び出さないものを嘲笑しています。あなたのアプローチではモックだけをテストします。 –
より完全な例が便利です。あなたが達成しようとしていることを判断するのは難しいです。それは嘲笑クラスは、それが自動的に返されたインスタンスとして別のモックを作成する呼び出されたときに、言いました。必要に応じて、この模擬接続を設定することができます。 – Dunes