我正在尝试编写一个检查约束的单元测试。我只是想看看如何使用它:
classdef UnitTester < matlab.unittest.TestCase
properties
end
methods (Test)
function testCheckLessThan (testCase)
testCase.verifyThat(2, IsLessThan(3));
end
end
end
当我使用run(UnitTester)运行它时会出现以下错误:
Uncaught error occurred in UnitTester/testCheckLessThan.
--------------
Error Details:
--------------
Undefined function 'IsLessThan' for input arguments of type 'double'.
答案 0 :(得分:0)
您需要的是在使用它的函数中导入约束,如下所示:
classdef UnitTester < matlab.unittest.TestCase
methods (Test)
function testCheckLessThan (testCase)
import matlab.unittest.constraints.IsLessThan;
testCase.verifyThat(2, IsLessThan(3));
end
end
end
希望有所帮助!
修改强> 如果您希望避免在文件中的每个方法或本地函数中导入IsLessThan约束,则可以通过利用本地函数可用作作用域机制的事实来有效地为IsLessThan定义命名空间。这看起来如下:
classdef UnitTester < matlab.unittest.TestCase
methods (Test)
function testCheckLessThan (testCase)
testCase.verifyThat(2, IsLessThan(3));
end
function testRange (testCase)
testCase.verifyThat(2, IsGreaterThan(1) & IsLessThan(3));
end
end
end
% "import" functions
function c = IsGreaterThan(varargin)
c = matlab.unittest.constraints.IsGreaterThan(varargin{:});
end
function c = IsLessThan(varargin)
c = matlab.unittest.constraints.IsLessThan(varargin{:});
end