การข้ามทดสอบแบบมีเงื่อนไข
บางครั้งอาจต้องการข้ามการทดสอบเมื่อเงื่อนไขบางอย่างเป็นจริง เช่น ต้องการรันการทดสอบทุกวัน ยกเว้นวันเสาร์ ในกรณีนี้สามารถใช้ไลบรารี datetime เพื่อดึงวันปัจจุบันของสัปดาห์ และใช้ marker ของ pytest สำหรับการข้ามการทดสอบแบบมีเงื่อนไข โดยส่งเงื่อนไขเข้าไปใน marker @pytest.mark.skipif(condition) ได้เลย
ไลบรารี pytest ถูก import ไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python เบื้องต้นสำหรับการทดสอบโค้ด
คำแนะนำการฝึกหัด
- เพิ่ม decorator สำหรับ "conditional skip" เพื่อให้โค้ดทำงานได้
- ใส่
condition_stringเข้าไปในการเรียกใช้ decorator - เขียน assertion tests ให้ครบถ้วน
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
day_of_week = datetime.now().isoweekday()
def get_unique_values(lst):
return list(set(lst))
condition_string = 'day_of_week == 6'
# Add the conditional skip marker and the string here
____.____.____(____)
def test_function():
# Complete the assertion tests here
____ ____([1,2,3]) == [1,2,3]
____ ____([1,2,3,1]) == [1,2,3]