如何在 Matlab 中隔离单元测试

2023-12-07

给定一个中等规模(科学)的代码库,如何继续构建单元测试套件?我需要测试本地函数以及隐藏方法,但到目前为止我不想修改/扩展类。 这是可能的还是我需要以某种方式注入测试用例?我该如何最好地实施这个?

Thanks.

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


对于私有函数,您可以解决创建函数句柄的可见性规则:

%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)

获取PrivateFunction.m:

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Matlab 中隔离单元测试 的相关文章

随机推荐

  • 将 opencv 重映射代码从 c++ 转换为 python

    我正在尝试将 c opencv cv2 remap 代码转换为 python 我没有收到任何错误 但结果不符合预期 我得到了缩放图像 c code int main Mat img imread captcha1 jpg float pha
  • Angular:ng-repeat 不起作用

    这是我的代码 我从 w3school 获取的
  • ViewScoped 的工作方式与 RequestScoped 类似 - 为什么?

    我编写了一个 ViewScoped Managed Bean 每次刷新 Web 浏览器中的页面时 该 Managed Bean 似乎都被重新创建 文章为空 它加载一个新的文章对象等等 对我来说 它看起来与 RequestScoped 的行为
  • 在 Windows 7 调试指令中有效的循环语句在 DOSBox 0.74 中不起作用

    我们有一个关于汇编语言循环的活动 我们的任务很简单 显示数字 0 到 9 每个数字之间有空格 我在我们学校的 WINDOWS 7 中使用 debug 命令获得了可以在命令提示符下运行的代码 我的笔记本电脑是 Windows 10 最近我发现
  • 如何在 JavaScript 中使用 C# 枚举值

    我有一个 C 枚举 即类似于 Category cs 的东西 在下拉列表中 我们绑定值 因此 如果用户在下拉列表中选择某个特定值 它将隐藏一个 div 所以我想获取javascript中的枚举值 即想将枚举值与javascript中的一个选
  • 如何在不创建 GLSurfaceView 的情况下检测 OpenGL 功能 (Android)

    在决定是否使用 OpenGL 还是 Canvas 进行图形处理之前 我尝试访问手机的 OpenGL 功能 但是 我可以阅读文档的所有功能都要求您已经拥有有效的 OpenGL 上下文 即 创建一个 GLSurfaceView 并为其分配渲染
  • 让函数按非内置类型的 const 值返回的用例有哪些?

    最近我读到 从函数返回值来限定非内置类型的返回类型 const 是有意义的 例如 const Result operation do something return Result 我正在努力理解这样做的好处 一旦返回对象 调用者肯定会选择
  • .Net 图表 - 具有不同间隔的 X 轴 [重复]

    这个问题在这里已经有答案了 我正在使用 Net 图表 其中 我显示了间隔为 28 天的折线图 这是我的代码 Chart1 ChartAreas ChartArea1 AxisX IntervalOffset 1 Chart1 ChartAr
  • 嘲笑GAE开发服务器?

    我正在尝试在我的开发 GAE 服务器上模拟 HTTPServletRequest 数据 我正在运行 Eclipse 插件 1 3 7 我尝试这样做 package com FOO madservice servlet mock import
  • JAVAFX 11 不支持 ECMAScript6 和 css3

    我正在使用 JAVA FX 11 的一些绘图工具创建一个网页浏览exp 但是在尝试加载具有以下功能的javascript代码时let and const使用这些变量只是被忽略并抛出异常 我使用的是 Maven 3 8 0 Java 1 8
  • PHP:gettext 需要 LC_MESSAGES 目录吗?

    为了翻译我的 PHP 应用程序 我使用在 gettext 模块中编译的方法 这是根据文档制作的翻译目录树 locale cs CZ LC MESSAGES messages po messages mo de DE LC MESSAGES
  • 如何显示等待 gif 直到图像完全加载

    大多数流行的浏览器在渲染图像时 会在加载时从上到下逐行显示图像 我有一个要求 即在加载图像时应显示等待 gif 当图像完全加载时 应该显示它而不是等待 gif 你可以使用 jQueryload method 你可以看这里 http jque
  • BAT 文件:打开新的 cmd 窗口并在其中执行命令

    我正在尝试在 BAT 文件中打开一个新的命令窗口 start windir system32 cmd exe 打开后 我想在新窗口中执行 BAT 命令 echo test in new window 我怎样才能做到这一点 您可能已经找到了答
  • 用Activity实现OnClickListener有什么效果?

    我不明白为什么我必须实现 OnClickListener 才能使用 OnClick 方法 假设这段代码 public class KlickitestActivity extends Activity implements OnClickL
  • 为什么提示用户输入字符串/选项后字符串比较无法按预期工作?

    除了空格和不需要的百分号之外 这是编写这些批处理代码行的正确方法吗 name cls echo now that we ve got your color figured out what about your name echo simp
  • 如何使用第一个字符作为部分名称

    我正在使用核心数据作为表视图 并且我想使用每个结果的第一个字母作为节标题 这样我就可以在侧面获取节索引 有没有办法用关键路径来做到这一点 像下面这样 我用的地方name firstLetter as the sectionNameKeyPa
  • 从 Bat 文件执行 Java 时包含 Jar

    我想从 bat 文件执行 Java 类 它包括使用opencsv jar 下面是代码 echo off set path PATH C Program Files x86 Java jdk1 6 0 bin javac cp opencsv
  • 如何从更深的目录中的文件导入模块?

    假设我的项目结构如下 project important py files file1 py 文件 important py 包含重要类 如何从 file1 导入类 重要 而 file1 是正在执行的 python 文件 我找到的唯一解决方
  • 以编程方式将 iPhone 重置为出厂设置

    有没有一种方法可以让我们以编程方式将 iPhone 设置重置为出厂默认设置 我们在 设置 应用程序的 常规 部分中有一个 重置 选项 我们可以通过编程方式访问它吗 谢谢 苏德希尔 SDK 不支持此功能 也许你可以对越狱手机做一些事情 这显然
  • 如何在 Matlab 中隔离单元测试

    给定一个中等规模 科学 的代码库 如何继续构建单元测试套件 我需要测试本地函数以及隐藏方法 但到目前为止我不想修改 扩展类 这是可能的还是我需要以某种方式注入测试用例 我该如何最好地实施这个 Thanks PS 我知道单元测试通常是指测试整