pythonのモック使用

コンセプト.Mock

名前は、このライブラリの主な機能は何かをシミュレートすることであることを示唆しているようunittest.mockは、Pythonでのユニットテストのためのライブラリである、モックは、アナログ手段を変換します。
その主な機能は、指定されたPythonオブジェクトのうち、モックオブジェクトの使用を置き換える目的を達成するために行動をシミュレートすることです。

2 .Mockの役割

1.あなたは、インターフェイスの自動化を書き込み、その後、インターフェイスに結果を返している場合は、使用Bインターフェースを必要とし、あなたがモックを使用することができます。

あなたは、他人を運転している、時には他の人があるかもしれない、サードパーティ製のインターフェースを呼び出す必要があるが、あなたのコントロールを超えた他の人々のインタフェースサービス、時間のインターフェースの自動化を行う、サードパーティのインターフェースに依存2.今日の環境にテストサービスを提供しますオフになっている
、あなたは戻り値のデータをシミュレートするために、独自のモックサーバ・インタフェースを書くことができ、多くの問題をテストオートメーションインターフェイスに。

3 .Mockのインポート

ユニットテストフレームワークが内部置かれた後py3.0でモック、そのライン上のunittestの輸入モックからの直接

IV。プレゼンテーションの例

 mock_data.py

1  DEF レジスタ():
 2      「」「仮定が登録された関数であり、不完全開発
 3つの     成功した登録戻り値:{」ステータス:1、 『コード』: 『10001』、 『データ』:なし、 『MSG』 :} "登録が成功すると、"
 4      登録戻る失敗しました:{ 'ステータス':0、 'コード':' 20110'、」データ':なし、' MSG ':' 電話番号が既に登録されている'}
 。5      ' '' 
6      パス
。7  DEF register_statues():
 8      '' ' に決定される登録が成功した''' 
9      結果= レジスタ()
 10      プリント(結果)
 11      のiF結果[ " コード"] == " 10001 " 12          リターン 成功の登録
13      elifの結果[ コード ] == 20110 14          リターン の電話番号が登録されている、」
15      16          リターン 不明なエラー例外。」

test_demo.py

1  から unittestのインポートモック
 2  インポートユニットテスト
 3。 から   test_case_demo インポートmock_data
 4。 
5つの。 クラス(たunittest.TestCaseの)Test_Register:
 6      '' ' ユニットテスト' '' 
7。     DEFのtest_01(自己):
 8          '' ' の試験シナリオ登録成功' ' 
9。          モック成功したデータレジスタ
10          mock_data.register = mock.Mock(RETURN_VALUE = { ' ステータス':1、' コード''10001 "' データ':なし、' MSG '' 正常に登録' })
 11          登録に係る結果を得る
12で          像の=のmock_data.register_statues()
 13は         #1 印刷(像)
14          self.assertEqual(彫像、" 登録が成功する" 15  
16      DEFのtest_02(自己):
 17          '' ' の試験シナリオ登録失敗' '' 
18は、         登録失敗の模擬データ
19。          mock_data.register = mock.Mock(RETURN_VALUE = { ' ステータス':0、' コード'' 20110 '' データ':なし、' MSG '' 電話番号が既に登録されている' })
 20          登録に係る結果を得る
21で          像の=のmock_data.register_statues()
 22である         #1 印刷(像)
23          self.assertEqual(像は、" 電話番号が登録されている" 24  
25  IF  __name__ == " __main__ " 26      unittest.main()

結果:

 

おすすめ

転載: www.cnblogs.com/hao2018/p/11412368.html