单元测试复合函数

2023-12-22

假设你有 3 个函数,函数、函数和函数

function 依赖于 functionAL 和 function

functionA(a) {
    return a
}
functionB(b) {
     return b
}
functionC(a, b){
     return functionA(a) + functionB(b);
}

现在这显然是一个超级简化的例子..但是测试 functionC 的正确方法是什么?如果我已经在测试 functionA 和 functionB 并且它们通过了,那么测试 functionC 最终不会不仅仅是一个单元测试,因为它将依赖于 functionA 和 functionB 返回。


对于前两个函数,您将专注于它们的公共契约 - 您将根据需要编写尽可能多的测试,以确保不同情况下的所有结果都符合预期。

但对于第三个函数,了解该函数应该调用其他两个函数可能就足够了。所以你可能需要更少的测试。您不需要再次测试测试 A 和 B 所需的所有情况。您只想验证 C 负责的预期“管道”。

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

单元测试复合函数 的相关文章

  • 我可以将参数作为数组传递吗?

    例如 而不是 assert eq add 2 3 5 有什么方法可以调用类似的东西 let params u32 2 2 3 assert eq call add params 5 我发现这个功能对于测试非常有用 例如 如果我想为需要大量参
  • 如何为未捕获的异常处理程序编写单元测试

    我有一个函数可以捕获uncaught例外情况 如下 有没有办法编写一个单元测试来执行uncaught exception handler 功能正常 但测试正常退出 import logging def config logger logge
  • 寻找网站测试自动化的方法

    我们开发定制调查网站 我正在寻找一种方法来自动化这些网站的模式测试 调查通常包含许多复杂的规则和分支 这些规则和分支也会根据项目的响应方式而触发 所有调查在发布给客户之前都经过严格测试 此测试需要大量的手动工作 我想了解一些可以通过回答问题
  • 验证是否使用mockito调用了三个方法之一

    我有这样的三种方法 public void method1 String str public void method1 String str String str2 String str3 public void method1 Stri
  • FakeAsync/tick (Async/whenStable) 与 detectorChanges()

    您能帮我区分这两件事吗 根据我的理解 如果你只使用 observable 你可以使用 detectorChanges 因此 您可以直接更改组件属性或监视服务调用并返回可观察的值 然后调用 detectorChanges 更改将在 html
  • Selenium 中的“断言”与“验证”

    Selenium 执行的检查通常有两种形式 assertFoo 和 verifyFoo 据我所知 assertFoo 使整个测试用例失败 而 verifyFoo 只是记录该检查的失败并让测试用例继续进行 因此 使用 verifyFoo 即使
  • 运行使用wiremock存根的多个测试用例时“选择器循环等待选择”

    我在用着wiremock http wiremock org 用于模拟网络服务 我使用它来提供对我们正在测试的某些单元的服务访问 所以基本上我们有多个junit测试 它们使用来自wiremock的存根 但是 当我们一次运行多个测试 假设运行
  • Python 是否有首选的 BDD 风格单元测试框架?

    我想知道是否有任何 BDD 风格的 描述它 Python 单元测试框架可以维护并准备好投入生产 我已经发现describe https pypi python org pypi describe 0 1 2 但似乎没有维护 也没有文档 我也
  • 在哪里可以获得有关 Java FitNesse 和 Slim 的一些教程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 Mockito 模拟构建版本

    我的目标是用 Mockito 模拟 Build Version SDK INT 已经尝试过 final Build VERSION buildVersion Mockito mock Build VERSION class doReturn
  • 使用内存中的单元测试 .ToListAsync()

    下面是由于内存数据库集不支持 ToListAsync 而在 ShouldNotThrow 上失败的测试 我没有方便的确切措辞 但你明白了 如果它很重要 我正在尝试模拟实体框架版本提供的数据库集 6 1 3 TestFixture publi
  • TDD/测试 CSS 和 HTML? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有没有办法测试 CSS 和 HTML 例如 有时某些通知会受到某些 CSS 更改的影响 我不想每次进行更改时都手动测试所有通知 Tha
  • 如何测试 JUnit 测试的 Comparator?

    我需要测试 Compare 方法 但我对如何测试感到困惑 我可以看看该怎么做吗 public class MemberComparator implements Comparator
  • mocha-phantomjs 回调函数测试用例

    我有一个模块 其中有此功能 flickrPhotoSearch function searchByName flickrUserKey numberOfImages callbackData return ajax url commonCo
  • 使用cameltestsupport进行Camel单元测试,模板始终为空

    我正在用 Camel 做一个简单的单元测试 我想做的就是从文件 在资源下 读取 JSON 内容 将其发送到 Java 类进行验证 这是我试图测试的路线 无论我做什么 模板 我用来发送正文 json 始终为空 这是我的代码 public cl
  • 如何使用 jest 模拟第三方库

    我正在开发一个node js应用程序使用nestjs我有一堂课叫LoggerService如下 export class LoggerService private logger Rollbar constructor this logge
  • vue-test-utils:如何测试 Mounted() 生命周期挂钩中的逻辑(使用 vuex)?

    我正在尝试为 Vue 中的逻辑编写一个单元测试mounted 生命周期钩子 但运气不太好 问题似乎是这样的mounted 使用 vue test utils 安装组件时永远不会被调用mount 这是我要测试的 Vue 组件
  • Googletest:如何异步运行测试?

    考虑到一个包含数千个测试的大型项目 其中一些测试需要几分钟才能完成 如果按顺序执行 整套测试需要一个多小时才能完成 通过并行执行测试可以减少测试时间 据我所知 没有办法直接从 googletest mock 做到这一点 就像 async选项
  • 如何对私有方法进行单元测试?

    我正在构建一个类库 它将有一些公共和私有方法 我希望能够对私有方法进行单元测试 主要是在开发时 但它也可能对未来的重构有用 这样做的正确方法是什么 如果您想对私有方法进行单元测试 则可能会出现问题 单元测试 一般来说 旨在测试类的接口 即其
  • Android Espresso - 如果未选中,请单击复选框

    I have onView withId R id check box perform click 但我只想在尚未选中该复选框时执行此操作 我怎样才能在浓缩咖啡中做到这一点 我还想根据其之前的状态来切换复选框 开关 起初 我尝试用此方法打开

随机推荐

  • stl::list 对象的最大数量

    问题是在数据集中找到周期性图形模式 所以我有 1000 个时间步长 每个时间步长都有一个图表 编码为整数 因此 该图可能出现 999 个可能的周期 我还定义了一个相位偏移 定义为 时间步模周期 对于在周期为 2 的第 5 个时间步长中首次出
  • 在没有 cookie 的情况下保留浏览器客户端 javascript/HTML 数据

    我创建了一个使用 Python HTML 和 javascript 的网站 主主页有 19 个可编辑变量字段 如果我更改任何这些字段值 然后离开页面 单击我的其他链接选项卡之一 然后返回我的主页 我的所有变量都会重置回默认值 因为页面会重新
  • 如何在 python 中获得按创建日期排序的目录列表?

    获取目录中所有文件的列表 按日期排序 的最佳方法是什么 创建 修改 在 Windows 机器上使用 python 我过去曾使用 Python 脚本执行此操作来确定目录中最后更新的文件 import glob import os search
  • 为什么我不能将 Number 转换为 Double?

    weight是一个字段 数字在火库 https firebase google com docs firestore manage data data types 设置100 int weight json weight double we
  • 我什么时候应该在片段中获得宽度视图

    我在 Linearlayout 中以编程方式添加视图 按钮 LinearLayout 通过 Fragment 中的 XML 进行布局 我想获取按钮宽度 但总是返回0 我用谷歌搜索了这个问题 getWidth 仅适用于WindowFocusC
  • 仅在执行路径上应用传递

    我有一个过程正在分析整个模块 使用runOnFunction 但我想将它应用到每个执行路径上 执行路径是指从程序中的某个点 用 start 注释 开始到程序的终止点 用 end 注释 的指令序列 我假设我必须通过构造 CallGraph 将
  • 使用索引、使用临时、使用文件排序 - 如何解决这个问题?

    我正在开发一个事件跟踪系统 该系统使用一些查找表以及主日志记录表 在我正在编写的报告中 可以选择一个对象来查看统计信息 该界面按重要性递减的顺序显示所有对象 即点击数 两个表的架构 稍微精简 但您明白了要点 CREATE TABLE IF
  • 在 IIS6 上安装 ASP.NET 4.0 和 ASP.NET 2.0

    我读过您创建新应用程序池的位置 一个用于 2 0 站点 一个用于 4 0 站点 但是在创建池来配置框架时我没有看到任何选项 我的问题是我有几个 2 0 站点作为默认网站运行 我在新的虚拟目录下添加了 WCF 4 0 服务 并将框架设置为 4
  • 如何减少最小 Linux 进程的内存占用

    考虑以下 C 程序 pause c void main pause 在 x64 Linux 3 0 0 16 generic 上使用命令 gcc Ospause c opause 进行编译会生成大小约为 8KB 的可执行文件 当我运行这个可
  • 列出具有架构名称的所有存储过程

    任何人都可以建议一种列出数据库中所有存储过程及其模式名称的方法吗 谢谢 SELECT schema OBJECT SCHEMA NAME object id name FROM sys procedures or SELECT schema
  • 如何分步“验证”Symfony 表单 - 而不是调用 $form->isValid()

    我在 Ubuntu 上使用 Symfony 1 3 6 我有一个包含很多字段的表单 我不想一次性显示所有字段 这可能会吓到用户 而是想将表单分成多个阶段 以便用户可以仅填写显示的字段 在每个步骤 阶段 有点像向导 为此 我需要为表单编写自定
  • 了解 Git 和 GitHub 的基础知识 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我不完全理解使用Git或Github的目的 我知道这有助于跟踪您的更改 并且有助于人们与其他人合作 但我不与任何人合作 所以我不知道这
  • 显示导致冲突的提交的作者和提交消息

    我有两个长期运行的分支dev 以及一个遥远的未来版本称为future 我们通过从显示错误的标签分支 修复它 然后向两个分支打开拉取请求来为受支持的版本创建修复程序 如果 未来 分支中存在冲突 我们的开发人员应该创建一个新分支 解决冲突 并向
  • Python 3tell() 在追加+读取模式下与文件指针不同步

    与 Python 2 2 7 15 不同 当打开二进制文件进行追加和读取时 我在 Python 3 3 6 5 中看到奇怪的 f tell 行为 如果当前查找位置为n字节时写入not在文件末尾 以下事情似乎按预期发生 文件指针移至文件末尾
  • 如何在flutter中使用运行时下载的本地化arb/json文件?

    我读了很多关于 flutter 本地化的教程和博客 他们使用 arb json 文件从 asset 文件夹或 l10n 文件夹进行本地化 那是固定的语言列表 意味着如果我使用英语本地化 现在在运行时我想向用户提供西班牙语 中文 意大利语 法
  • spring mvc中如何将用户表单数据发送到服务器

    我有一个这样的登录表单
  • C#。执行 if( a == (b 或 c 或 d))。是否可以?

    还有另一种方法可以写这样的东西 if a x a y a z 我发现的一种方法是这样做 if new x y z Contains a 还有其他好的方法吗 我经常使用模仿 SQL 的扩展方法IN public static bool IsI
  • 当 Observable/Completed 完成或释放时,RxJava2 获取事件

    当我订阅时我需要显示一个进度对话框Completable并在操作完成 成功或有错误 或取消后隐藏它 So I do final Completable completable notificationRepository markAllAs
  • Graphviz:如何在 HTML 表格单元格之间创建边缘?

    请考虑以下代码 digraph G node shape plaintext a label lt table border 0 cellspacing 0 tr td first td tr tr td second td tr tr t
  • 单元测试复合函数

    假设你有 3 个函数 函数 函数和函数 function 依赖于 functionAL 和 function functionA a return a functionB b return b functionC a b return fu