私はJavaのMockitoライブラリでdependancy injectionを使いやすいですが、Python3のunittest.mock
モジュールの使用経験はほとんどありません。私はRequest
インスタンスのprepare
メソッドが呼び出されると主張しようとしています。しかし、テストはアサーションself.assertTrue(mock_request.prepare.called)
で失敗します。誰かがこの試験に合格する方法を教えてもらえますか?Python3ユニットテストモッキングリクエストモジュール
import requests
import unittest
from unittest import mock
class Engine(object):
def get(self, **kwargs):
session = requests.Session()
req = requests.Request('GET', 'http://www.google.com', params=kwargs).prepare()
response = session.send(req, timeout=1)
class TestEngine(unittest.TestCase):
@mock.patch('requests.Session')
@mock.patch('requests.Request')
def test_get(self, mock_request, mock_session):
e = Engine()
e.get()
self.assertTrue(mock_request.called)
self.assertTrue(mock_request.prepare.called)
if __name__ == '__main__':
unittest.main()