创建基本自定义脚手架
此示例演示如何创建基本自定义脚手架,以便将显示格式更改为十六进制表示。此示例还演示如何使用该脚手架测试一个将一列数字显示为文本的函数。测试完成后,该框架将显示格式恢复为其预测试状态。
创建 FormatHexFixture 类定义
在您的工作文件夹下的文件中,创建一个从 matlab.unittest.fixtures.Fixture 类继承的新类 FormatHexFixture。因为我们希望该脚手架恢复 MATLAB® 显示格式的预测试状态,所以创建一个 OriginalFormat 属性来跟踪原始显示格式。
classdef FormatHexFixture < matlab.unittest.fixtures.Fixture properties (Access = private) OriginalFormat end end
实现 setup 和 teardown 方法
Fixture 类的子类必须实现 setup 方法。使用此方法记录预测试显示格式,并将该格式设置为 'hex'。使用 teardown 方法恢复原始显示格式。在 FormatHexFixture 类的 methods 代码块中定义 setup 和 teardown 方法。
classdef FormatHexFixture < matlab.unittest.fixtures.Fixture properties (Access = private) OriginalFormat end methods function setup(fixture) fixture.OriginalFormat = format; format hex end function teardown(fixture) 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 __________
另请参阅
matlab.unittest.fixtures.Fixture