鉴于中型(科学)代码库,您如何着手构建单元测试套件?我需要测试本地函数以及隐藏方法,但到目前为止我不想修改/扩展类。 这是可能的还是我需要以某种方式注入测试用例?我怎样才能最好地实现这个目标?
感谢。
PS:我知道通常单元测试是指测试整个单元,但是我的对象非常复杂并且有一些非常花哨的方法,这些方法经常被团队修改。答案 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
的文档,允许导致有效路径的所有内容。