DDTは、サードパーティのモジュールで、インストール、DDTをインストールPIP
DDTクラスは、二つの方法のデコレータとデコレータDDTデータ(直接入力テストデータ)が含まれ
データは、データタプル、リスト、辞書や他の複数のデータが含まれている場合、典型的には、パラメータに従って、試験データに送信されるデータは、データ自体は、スクリプトが必要または分解する分解アンパックデータに使用します。
@data(B)
aおよびbは、それぞれのユースケースを実行している、方法2を呼び出し
@data([D]、[C、D])
@unpackない場合、[B]を引数として、実施例で実行します
そこ場合@unpackし、[A、B 2つの送信パラメータの一実施形態による、ばらばらにされ
1、最初のDDTをインストール
$>ピップDDTをインストール
既にインストールされているので、以下のように暗示を無視することができます
2は、インストール後に、操作は一見のユニットテストで実装することができ、具体例を参照してください。
インポートDDTの インポートユニットテスト ##定义任意的参数、リスト、辞書、STR、タプル等等 t_list = [1,2 ] t_dict = { " A ":" A "、" B ":" B " } t_str = ' test_string ' t_tuple =(1,2 ) @ ddt.ddt クラステスト(たunittest.TestCase): デフセットアップ(自己): プリント(' 開始' ) ##これは、一つのパラメータのみ、データに割り当てられたt_list、印刷で の@ ddt.data(t_list) DEF する。test_a(自己、データ) を印刷(データ) #1 #これに複数の引数がある場合、受け付ける関数があり @ddtは、 .DATA(t_list、t_dict、t_str、t_tuple) DEF TEST_B(自己、データ): 印刷(データ) ##渡されたパラメータのこの複数は、複数の機能は、受信 ddt.data @(t_list、t_dict、t_str 、t_tuple ) DEF test_c(セルフ、A、B、C、D): プリント(A) プリント(B) プリント(C) プリント(D) IF __name__ == ' __main__ ' : unittest.main()
結果は以下の通りであります:
上記から分かるように、第一、第二の機能は、第三の関数はエラーを行い、問題なく行います。我々は、次を描くことができます
---あなたは、パラメータの複数の種類を渡すことができ、複数のタイプを受け入れることができます
---パラメータの複数の種類が渡された同時に渡すことができ、各パラメータは、全体として渡されたテスト機能、試験機能を実行します。
我々は、単一のパラメータは、コンテンツをたくさん持って合格した場合3、そして、あなたはそれを強制するためにそれを打破する必要がありますか?この時間は、アンパックを使用する必要があり、以下の
DDTインポート インポートunittestの ##の任意のパラメータを定義し、リスト、辞書、STR、タプル等 t_dict = { "A": 'A'、 "B": "B"、 "C": "C"} @ddt。 DDTの クラス(たunittest.TestCaseの)テスト: セットアップ(自己)DEF: 印刷( 'スタート') ##それぞれに渡されたパラメータに対応し、解凍するためにここに追加 する@ ddt.data(t_dict) ddt.unpack @ DEF test_A(セルフ、 、B、C): プリント(A) プリント(B) プリント(C)は、 ##のパラメータに対応する、全く増加アンパックがない @ ddt.data(t_dict) DEF TEST_B(セルフ、A、B、C): 印刷( A) 印刷(B) プリント(C) __name__ == '__main__' IF: unittest.main()
結果は以下の通りであります:
由上,我们可以得到,unpack的用法
以上就是ddt 的学习总结