ในการเขียนกรณีทดสอบหน่วยเทียบกับโค้ด เราสามารถพิจารณาพล็อตที่ใช้อาร์เรย์เป็นจุด x และพล็อตเป็น y=x^2 ขณะทดสอบ เราจะแยก y_data สำหรับจุดข้อมูล x-
ขั้นตอน
- สร้างวิธีการ เช่น plot_sqr_curve(x) เพื่อพล็อต x และ x^2 โดยใช้ plot() เมธอดและส่งคืนพล็อต
- ในการทดสอบ ให้ใช้ unittest.TestCase
- เขียน test_curve_sqr_plot() วิธีการที่มีข้อความต่อไปนี้
- สร้างจุดข้อมูลสำหรับ x เพื่อพล็อตเส้นโค้ง
- ใช้จุดข้อมูล x ด้านบน ให้สร้างจุดข้อมูล y
- ใช้จุดข้อมูล x และ y วาดเส้นโค้ง
- ใช้ pt (จากขั้นตอนที่ 5) ดึงข้อมูล x และ y
- ตรวจสอบว่านิพจน์ที่กำหนดเป็นจริงหรือไม่
ตัวอย่าง
import unittest import numpy as np from matplotlib import pyplot as plt def plot_sqr_curve(x): """ Plotting x points with y = x^2. """ return plt.plot(x, np.square(x)) class TestSqrCurve(unittest.TestCase): def test_curve_sqr_plot(self): x = np.array([1, 3, 4]) y = np.square(x) pt, = plot_sqr_curve(x) y_data = pt.get_data()[1] x_data = pt.get_data()[0] self.assertTrue((y == y_data).all()) self.assertTrue((x == x_data).all()) if __name__ == '__main__': unittest.main()
ผลลัพธ์
Ran 1 test in 1.587s OK