Pythonで外部APIをモックする方法について説明します。モックは、実際のオブジェクトを模倣した偽のオブジェクトで、システムが本物と思い込むように作ります。

unittest.mockライブラリ

Pythonにはunittest.mockというライブラリがあり、これを使うとシステムのテスト中に一部をモックオブジェクトに置き換えて、どのように使用されたかについて主張することができます。

from unittest.mock import MagicMock
thing = ProductionClass()
thing.method = MagicMock(return_value=3)
thing.method(3, 4, 5, key='value')  # Returns: 3
thing.method.assert_called_with(3, 4, 5, key='value')

上記のコードでは、MagicMockを使用してProductionClassmethodをモックしています。このmethodは常に3を返すように設定されています。

外部APIのモック

外部APIとの統合は、製品の機能を拡張する素晴らしい方法です。しかし、その価値は障害と共にやってきます。そのため、外部APIをモックすることで、実際に外部データソースに接続することなく、制御された環境でのAPIの実装をテストすることができます。

from unittest.mock import Mock
mock = Mock(side_effect=KeyError('foo'))
mock()  # Raises: KeyError: 'foo'

上記のコードでは、Mockを使用して例外を発生させるサイドエフェクトを作成しています。

まとめ

Pythonのunittest.mockライブラリを使用すると、システムの一部をモックオブジェクトに置き換えてテストすることができます。これにより、外部APIとの統合を安全にテストし、アプリケーションの信頼性を向上させることができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です