本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

创建基本自定义脚手架

此示例演示如何创建基本自定义脚手架,以便将显示格式更改为十六进制表示。此示例还演示使用该脚手架测试一个将一列数字显示为文本的函数。测试完成后,该框架将显示格式恢复为其预测试状态。

创建 FormatHexFixture 类定义

在您的工作文件夹下的文件中,创建一个从 matlab.unittest.fixtures.Fixture 类继承的新类 FormatHexFixture。因为我们希望该脚手架恢复 MATLAB® 显示格式的预测试状态,所以创建一个 OriginalFormat 属性来跟踪原始显示格式。

classdef FormatHexFixture < matlab.unittest.fixtures.Fixture
    properties (Access=private)
        OriginalFormat
    end

实现设置和拆解方法

Fixture 类的子类必须实现 setup 方法。使用此方法记录预测试显示格式,并将该格式设置为 'hex'。使用 teardown 方法恢复原始显示格式。在 FormatHexFixture.m 文件的 methods 块中定义 setupteardown 方法。

    methods
        function setup(fixture)
            fixture.OriginalFormat = get(0, 'Format');
            set(0, 'Format', 'hex')
        end
        function teardown(fixture)
            set(0, 'Format', fixture.OriginalFormat)
        end
    end
end

应用自定义脚手架

在您的工作文件夹下的文件中,创建以下测试类 SampleTest.m

classdef SampleTest < matlab.unittest.TestCase
    methods (Test)
        function test1(testCase)
            testCase.applyFixture(FormatHexFixture);
            actStr = getColumnForDisplay([1;2;3], 'Small Integers');
            expStr = ['Small Integers  '
                '3ff0000000000000'
                '4000000000000000'
                '4008000000000000'];
            testCase.verifyEqual(actStr, expStr)
        end
    end
end

function str = getColumnForDisplay(values, title)
elements = cell(numel(values)+1, 1);
elements{1} = title;
for idx = 1:numel(values)
    elements{idx+1} = displayNumber(values(idx));
end
str = char(elements);
end

function str = displayNumber(n)
str = strtrim(evalc('disp(n);'));
end

该测试应用自定义脚手架并验证是否按预期显示十六进制表示形式的列。

在命令提示符下运行测试。

run(SampleTest);
Running SampleTest
.
Done SampleTest
__________

另请参阅

相关主题