You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在MATLAB单元测试中用setupOnce共享变量的可行性及实现方法

MATLAB单元测试中通过setupOnce共享旧代码生成的矩阵

完全可行,你可以通过给测试类添加属性,在setupOnce中把旧代码生成的矩阵存入该属性,让所有测试用例共享这个结果,避免重复执行耗时的旧代码操作。具体实现步骤如下:

1. 编写基于类的测试结构

MATLAB的单元测试需要以类的形式实现,继承自matlab.unittest.TestCase,并通过类属性来共享数据:

classdef MatrixComparisonTest < matlab.unittest.TestCase
    % 声明属性存储旧代码生成的矩阵
    properties
        ExpectedA
    end

    % ClassSetupMethod 标记的方法会在整个测试类执行前只运行一次
    methods (ClassSetupMethod)
        function setupOnce(testCase)
            % 执行旧代码生成矩阵,并赋值给测试实例的属性
            testCase.ExpectedA = buildOldMatrix;
        end
    end

    % 测试用例方法,每个方法对应一个测试场景
    methods (Test)
        function testNewMatrix(testCase)
            actualA = buildNewMatrix;
            % 访问共享的ExpectedA,对比新旧代码结果
            testCase.verifyEqual(actualA, testCase.ExpectedA);
        end

        function testEdgeCaseMatrix(testCase)
            % 另一个测试用例,同样可以直接使用已生成的ExpectedA
            actualA = buildNewMatrixEdgeCase;
            testCase.verifyEqual(actualA, testCase.ExpectedA);
        end
    end
end

关键说明

  • 类属性ExpectedA:作为共享数据的容器,所有测试用例都能通过testCase.ExpectedA访问。
  • ClassSetupMethod修饰符:标记的setupOnce方法会在整个测试类启动时仅执行一次,完美适配你“只跑一次旧代码”的需求。
  • 测试用例独立性:确保buildOldMatrix没有全局变量修改等副作用,避免不同测试用例间的干扰。

内容的提问来源于stack exchange,提问作者Rich006

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 22:55:01