モックの使用 - 依存のインタフェース問題を解決するために

参考: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値を()メソッドを置き換えることができ、そしてこのような場合に関係なく、変更の戻り値の方法をどのように返すために、私たちはモックに焦点を当てる必要があります

おすすめ

転載: www.cnblogs.com/wang-mengmeng/p/12602023.html