Fixtures ใน unittest

Python เบื้องต้นสำหรับการทดสอบโค้ด

Alexander Levin

Data Scientist

ทบทวน Fixtures

  • Fixture
    • สภาพแวดล้อมที่เตรียมไว้สำหรับการทดสอบ
    • แยกขั้นตอนการเตรียมออกจากโค้ดทดสอบ
  • Fixture setup - การเตรียมทรัพยากรสำหรับการทดสอบ
  • Fixture teardown - การทำความสะอาด ("ล้าง") ทรัพยากรที่จัดสรรไว้
  • ตัวอย่าง: การเตรียมอาหารสำหรับปิกนิกและการเก็บกวาดหลังเสร็จงาน
Python เบื้องต้นสำหรับการทดสอบโค้ด

Fixtures ในไลบรารี unittest

  • Fixture ใน unittest - การเตรียมการที่จำเป็นสำหรับการทดสอบหนึ่งรายการหรือมากกว่า
  • .setUp() - เมธอดที่เรียกใช้เพื่อเตรียม fixture ก่อนการทดสอบจริง
  • .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 ตัวพิมพ์ใหญ่

  • ไวยากรณ์ที่ถูกต้อง: setUp ใช้ U ตัวพิมพ์ใหญ่ และ tearDown ใช้ D ตัวพิมพ์ใหญ่

    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():

ผลลัพธ์จากการรันโค้ดที่มี fixture

Python เบื้องต้นสำหรับการทดสอบโค้ด

เมธอดที่ตั้งชื่อไม่ถูกต้อง

ผลลัพธ์เมื่อรันโค้ดที่มี .set_up():

ผลลัพธ์จากการรันโค้ดที่มี fixture ชื่อผิด

Python เบื้องต้นสำหรับการทดสอบโค้ด

สรุป

  • Fixture ใน unittest - การเตรียมการที่จำเป็นสำหรับการทดสอบหนึ่งรายการหรือมากกว่า
  • วิธีสร้าง fixture:
    • กำหนดเมธอด .setUp()
    • กำหนดเมธอด .tearDown()
  • .setUp() - เมธอดที่เรียกใช้เพื่อเตรียม fixture ก่อนการทดสอบจริง
  • .tearDown() - เมธอดที่เรียกใช้หลังการทดสอบเพื่อล้างสภาพแวดล้อม
Python เบื้องต้นสำหรับการทดสอบโค้ด

มาฝึกกันเถอะ!

Python เบื้องต้นสำหรับการทดสอบโค้ด

Preparing Video For Download...