如何针对使用 Matplotlib 的代码编写单元测试?
为了针对某一代码编写单元测试用例,我们可以考虑一个以数组作为 x 点的图,并将其绘制为 y=x^2. 在测试期间,我们将针对 x 数据点提取 y_data−
步骤
- 创建方法,即 plot_sqr_curve(x),使用 plot() 方法绘制 x 和 x^2,并返回图形。
- 进行测试时,使用 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
广告