编写单元测试的方法 -凯发k8网页登录

main content

编写单元测试的方法

要在代码功能中指导软件开发并监视回归,您可以为您的程序编写单元测试。matlab® 单元测试框架支持三种测试编写方案:

  • 基于脚本的单元测试:将每个单元测试编写为测试脚本文件的一个单独的节。您可以执行基本验证,访问框架在测试结果上记录的诊断信息,通过选择要运行的测试来优化测试套件,以及通过创建和配置 对象来自定义测试运行。

  • 基于函数的单元测试:将每个单元测试编写为测试函数文件中的一个局部函数。基于函数的测试采用 xunit 测试原理。除了支持基于脚本的测试所提供的功能之外,基于函数的测试还支持您访问一组丰富的测试编写功能。例如,您可以使用高级验证功能,包括约束、容差和测试诊断。

  • 基于类的单元测试:将每个单元测试编写为类定义文件中的一个 test 方法。除了支持基于脚本和基于函数的测试所提供的功能之外,基于类的测试还为您提供一些高级的测试编写功能,并支持您访问完整的框架功能。例如,您可以使用共享测试脚手架、参数化测试和重用测试内容。

test authoring schemes in order of increasing functionality: script-based tests, function-based tests, and class-based tests

基于脚本的单元测试

通过基于脚本的测试,您可以:

  • 定义要在测试中共享的变量或测试所需的预条件。

  • 使用 函数执行基本验证。例如,您可以使用 assert(isequal(actval,expval)) 来断言实际值和预期值相等。(仅基于函数和基于类的测试支持高级验证功能。)

  • 访问框架记录的测试诊断。有关详细信息,请参阅。(仅基于函数和基于类的测试支持高级诊断操作。)

通常,使用基于脚本的测试,您可以创建测试文件并将文件名传递给 函数,而无需显式创建 test 元素的套件。如果您创建了一个显式测试套件(使用 函数或 类的方法),则基于脚本的测试中会提供其他功能。借助显式测试套件,您可以:

  • 优化您的套件,例如,使用 包中的类来优化套件。(一些选择器只适用于基于类的测试。)

  • 创建 testrunner 对象,并对其进行自定义以运行您的测试。您可以将 包中的插件类添加到测试运行程序中。

有关基于脚本的测试的详细信息,请参阅和。

基于函数的单元测试

基于函数的测试支持基于脚本的测试所提供的功能。此外,通过基于函数的测试,您可以:

  • 设置系统的预测试状态并在运行测试后将其恢复为原始状态。您可以对每个测试文件执行一次这些任务,或对每个单元测试执行一次。有关详细信息,请参阅。

  • 使用 包中的脚手架类(使用 方法)来处理常用测试动作的设置和拆解。

  • 使用 方法以一定的详细程度记录诊断信息。

  • 使用 包中的完整验证库。要确定应使用哪种验证,请参阅。

  • 使用高级验证功能,包括约束、实际值代理、容差和测试诊断。您可以在验证中使用 和 包中的类。

有关基于函数的测试的详细信息,请参阅和。

基于类的单元测试

基于类的测试支持基于脚本和基于函数的测试所提供的功能。此外,通过基于类的测试,您可以:

  • 使用设置和拆解方法块,用于隐式设置预测试环境状态并在运行测试后将其恢复为原始状态。有关详细信息,请参阅。

  • 在类之间共享脚手架。有关详细信息,请参阅。

  • 将测试划分为多个类别,然后运行具有指定标记的测试。有关详细信息,请参阅。

  • 编写参数化测试,用于在指定的参数列表上合并和执行测试。有关详细信息,请参阅。

  • 使用子类化和继承来共享和重用测试内容。例如,您可以通过派生子类来重用在测试类中定义的参数和方法。有关详细信息,请参阅。

有关基于类的测试的详细信息,请参阅。

扩展单元测试框架

单元测试框架使测试框架编写者能够通过自定义约束、诊断、脚手架和插件来扩展测试编写。例如,您可以创建一个自定义插件,并在运行基于脚本、基于函数或基于类的单元测试时使用它来扩展测试运行程序。有关详细信息,请参阅。

相关主题

    外部网站

      网站地图