如何在Matlab中隔离单元测试

时间:2014-07-07 13:41:14

标签: matlab unit-testing

鉴于中型(科学)代码库,您如何着手构建单元测试套件?我需要测试本地函数以及隐藏方法,但到目前为止我不想修改/扩展类。 这是可能的还是我需要以某种方式注入测试用例?我怎样才能最好地实现这个目标?

感谢。

PS:我知道通常单元测试是指测试整个单元,但是我的对象非常复杂并且有一些非常花哨的方法,这些方法经常被团队修改。

1 个答案:

答案 0 :(得分:1)

对于私有函数,您可以使用可见性规则来创建函数句柄:

%get handle for E:\WORKSPACE\MATLAB\private\object_of_test.m
testfun=getPrivateFunction('E:\WORKSPACE','MATLAB','private','object_of_test.m')
%call function
testfun(pi)

getPrivateFunction.m:

function handle=getPrivateFunction(varargin)
p=fullfile(varargin{:});
[d,f,~]=fileparts(p);
olddir=pwd;
cd(d);
handle=str2func(f);
cd(olddir);
end

对于getPrivateFunction的可能输入,请查看fullfile的文档,允许导致有效路径的所有内容。