unittest のフィクスチャ

Pythonによるテスト入門

Alexander Levin

Data Scientist

フィクスチャの復習

  • フィクスチャ
    • テスト用に用意した実行環境
    • 準備とテストコードを分離
  • セットアップ: テスト資源の準備
  • ティアダウン: 確保した資源のクリーンアップ
  • : ピクニックの準備と片付け
Pythonによるテスト入門

unittest ライブラリのフィクスチャ

  • unittest のフィクスチャ: 1つ以上のテストに必要な準備
  • .setUp(): テスト前にフィクスチャを準備するメソッド
  • .tearDown(): テスト後に環境をクリーンアップするメソッド
1 https://docs.python.org/3/library/unittest.html
Pythonによるテスト入門

コード例

import unittest

class TestLi(unittest.TestCase):
    # Fixture setup method
    def setUp(self):
        self.li = [i for i in range(100)]

    # Fixture teardown method
    def tearDown(self):
        self.li.clear()

    # Test method
    def test_your_list(self):
        self.assertIn(99, self.li)
        self.assertNotIn(100, self.li)
Pythonによるテスト入門

U と D は大文字

  • 正しい記法: setUpU は大文字、tearDownD は大文字。

    class TestLi(unittest.TestCase):
      # Fixture setup method
      def setUp(self):
          self.li = [i for i in range(100)]
    
      # Fixture teardown method
      def tearDown(self):
          self.li.clear()
    
Pythonによるテスト入門

出力例

コマンド: python3 -m unittest test_in_list.py

.setUp().tearDown() 使用時の出力:

フィクスチャ使用時の実行結果

Pythonによるテスト入門

メソッド名の誤り

.set_up() 使用時の出力:

誤った名前のフィクスチャ実行結果

Pythonによるテスト入門

まとめ

  • unittest のフィクスチャ: 1つ以上のテストに必要な準備
  • フィクスチャの作成:
    • .setUp() を実装
    • .tearDown() を実装
  • .setUp(): テスト前にフィクスチャを準備するメソッド
  • .tearDown(): テスト後に環境をクリーンアップするメソッド
Pythonによるテスト入門

Ayo berlatih!

Pythonによるテスト入門

Preparing Video For Download...