単体テストフレームワークのunittestの詳細説明

1.単体テストの概要

Unittest は Python 独自の単体テスト フレームワークであり、単体テストだけでなく、Web 側、appium、インターフェイスの自動化テスト ケースの開発と実行にも適しています。

 

2. 単体テストの 4 つのコアコンポーネント

1) TestCase: ユースケース関数を定義するために使用されるテスト ケース クラス

2) TestSuite: テストケースを収集するためのテストスイート

3) TestRunner: テスト ケース実行クラス。テスト ケースの実行に使用され、テスト スイートのディメンションで実行されます。

4) TestFixture: 足場 (前部と後部)、配置前の状態、および清掃のための配置後のテスト

 

3. テストプロセス

1) まずテストケースクラスを定義し、テストケースクラスにテストメソッドを記述します。

2) テスト スイートを定義し、テスト ケース クラスまたはファイル内のテスト メソッドを収集し、テスト スイートに配置します。

3) ユースケースランナーを定義し、収集したテストスイートをユースケースランナーに入れて実行し、テスト結果を収集します。

4) フロントとリアをしっかりと行う

 

4. テストケースの書き方

1) 単体テストモジュールをインポートする

d3e685bb8cab4f97a20692e6c2340d6e.png

 2) テスト ケース クラスを定義します。クラス名は Test で始まり、unittest.TestCase を継承する必要があります。

781d600ce72a42f9a2bf078c2e1ee82b.png

 3) setUp()、tearDown() 関数、つまりテスト フィクスチャを追加します。

097ffaca2fa645c28d3cff5ad8a9f605.png

 4) テスト メソッドを定義します。テスト メソッドは test で始まり、テスト ケース クラスに記述する必要があります。

1d3dfaf3a273406ea7502e321c67da12.png

 5) フレームワークは、エントリの main メソッド、unittest.main() を実行します。これにより、現在の py ファイルのテスト ケースが自動的に収集され、実行されます。

e2695eff2b70407589b71b0707db8a87.png

 

5. テストケースの内容

1) SQL ステートメントの実行、データベースの作成、ツール クラスのインスタンス化などの前提条件 (記述されていない場合)。

2) テストステップ(ビジネスロジック)、データ置き換え、データドリブンなど

3) テスト結果アサーション(対応する結果アサーション、データベース データ アサーションを含む)

4) 事後条件 (記述されていない場合)。データ クリーニング、データベース接続の終了など。

 

 6. フロントとリア (テストフィクスチャ)

1) 機能レベル

setUp(): 各ユースケース関数が実行される前に 1 回事前実行されます。

teaDown(): 各ユースケース関数が実行された後、一度実行されます。

サンドイッチビスケットと同様に、前後にクリームが入ったビスケット2枚に相当し、真ん中のクリームがユースケースに相当します。

コード例:

de1a871ca30f43efb7d6d757b6a0e9d5.png

 操作結果:

59e74a302dc8483a895be4c0c35801dc.png

2) クラスレベル

setUpClass(cls): 現在のユース ケース クラスのすべてのテスト ケースが実行される前に 1 回事前実行されます。

teaDownClass(cls): 現在のユースケースクラスのすべてのテストケースが実行された後、1 回実行します。

コード例:

e3ea43a300984c09a3b97f1f8d150d76.png

操作結果:

080916aef7a241e3ac4e879e1da734d5.png

 

 7. ユースケースの収集方法

1) テストケースをディメンションとして取得します

85a8da8fce8248159f600ac38b81bd12.png

2) テストクラスをディメンションとして取得します

0412b6264cf6413eb8b1de186a090ee5.png

 3) モジュールを次元として取得します

83826984ee13460b8daa9ccbb6ac0e31.png

 

 

 

 

おすすめ

転載: blog.csdn.net/m0_37794269/article/details/127392489