参考:https://www.jianshu.com/p/15594044ab27
モックPIPインストール
PIPをpytestインストール(アップグレード版をモックに相当)-mockを
例えば:
#という名前のファイル:mock_demo.py インポート要求 DEF mock_request(URL): "" " 必要がモック要求する""" リターンrequests.getを(URL).status_code DEF invoke_mock_request(URL): リターン mock_request(URL)
テストケース
インポート模擬 から pytest_mockのインポートあざける者 から common.mock_demo インポートinvoke_mock_request DEF test_mock_1(あざける者): "" " 方法一:使用的是pytest-モック中的あざける者""" mocker.patch(" common.mock_demo.mock_request "、RETURN_VALUE = 300 ) アサート invoke_mock_request(" https://www.baidu.com/ ")== 300 DEF test_mock_2(): "" " 方法二:使用的モック中パッチ方法""" mock.patch有する(「共通。mock_demo.mock_request " 、RETURN_VALUE = 300 FOO AS): アサート invoke_mock_request(" https://www.baidu.com/ ")== foo.return_value @ mock.patch(" common.mock_demo.mock_request "、RETURN_VALUE = 300 ) DEFのtest_mock_3(mock_request ): 「」「方法3:デコレータメソッドはモックオブジェクト関数の戻り値を交換するために使用」「」 アサート(invoke_mock_request 「https://www.baidu.com/ 」)== mock_request.return_value
されていること:invoke_mock_request()を呼び出す前に、そのインターフェイスに依存mock_request値を()メソッドを置き換えることができ、そしてこのような場合に関係なく、変更の戻り値の方法をどのように返すために、私たちはモックに焦点を当てる必要があります