如何针对使用 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

更新于: 2021 年 5 月 15 日

518 次浏览

助力你的 事业

完成课程可获得认证

开始学习
广告