在我们的应用程序中,我们必须设置一个数据验证例程以应用于正在使用的数据集。
更准确地说,对于给定的一组数据,我们希望对其进行一组检查,以验证其一致性。例如,给定对象的动态特性,例如:
我们想验证一下:
为此,matlab单元测试框架看起来很有趣,因为它提供了一整套检查和接受条件。但是,即使使用参数化测试,似乎也无法拥有一个可以接受要检查的数据作为输入的测试套件,例如在运行测试套件时而不是在类中(如文档中所示),似乎无法编写参数化测试,在该参数化测试中设置参数。
我想知道我是否遗漏了一些有关unittest API的信息,还是绝对不可能做到?
答案 0 :(得分:0)
我已经完成了与您要求的类似的操作。它不使用命令行参数作为输入,但实际上它确实在目录中的一组文件上运行测试。这是一些代码的骨架:
classdef checkMyData < matlab.unittest.TestCase
properties(TestParameter)
% just create a cell array of numbers, one for each file, for the test to iterate through
filenum = num2cell(1:length(dir('\directory\where\data\is\*.mat')));
end
methods(Test)
function genericFile(testCase,filenum)
% get details on the file we're currently testing
testDataPath = '\directory\where\data\is';
testFiles = dir(fullfile(testDataPath,'*.mat'));
filename = fullfile(testDataPath,testFiles(filenum).name);
[~,nameonly,~] = fileparts(filename);
% load data
load(filename);
% do some test
testCase.verifyGreaterThanOrEqual(mass,[nameonly ': Mass is negative'])
end
end
end