mock_openを使えばよい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# mock 関連import from mock import Mock, MagicMock, patch, call, mock_open def test_something(self): # open の MagicMockインスタンス m = mock_open() # openを使う場所を指定する。 somemoduleはテスト対象のモジュール # somemodule 内部で呼ばれる open は、 m (mock_open() すなわち MagicMock )に置き換わる with patch('somemodule.open', m, create=True): # テストを実行する somemodule.action() # モック化された openの実行 mock = m() # write で、"write something" が呼ばれたかどうか確認 mock.write.assert_any_call("write something") |