Để viết unit test cho code vẽ đồ thị y = x²:
- Tạo hàm plot_sqr_curve(x) vẽ x và x², trả về đối tượng plot.
- Sử dụng unittest.TestCase.
- Viết test_curve_sqr_plot(): tạo dữ liệu x, tính y = x², vẽ đồ thị, trích xuất dữ liệu x_data, y_data từ plot, so sánh với y, x gốc.
Ví dụ
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()
Kết quả
Ran 1 test in 1.587s OK