Mocha 测试用例 - 嵌套的 it( ) 函数是否合规?

2024-01-03

我有这样的情况,我想我想要嵌套it()Mocha 测试中的测试用例。我确信这是错误的,我没有看到任何建议来做我正在做的事情,但我目前不知道更好的方法 -

基本上,我有一个“父”测试,在父测试内部有一个包含所有“子”测试的 forEach 循环:

it('[test] enrichment', function (done) {

        var self = this;

        async.each(self.tests, function (json, cb) {

            //it('[test] ' + path.basename(json), function (done) {

                var jsonDataForEnrichment = require(json);
                jsonDataForEnrichment.customer.accountnum = "8497404620452729";
                jsonDataForEnrichment.customer.data.accountnum = "8497404620452729";
                var options = {
                    url: self.serverURL + ':' + self.serverPort + '/event',
                    json: true,
                    body: jsonDataForEnrichment,
                    method: 'POST'
                };


               request(options,function (err, response, body) {
                    if (err) {
                        return cb(err);
                    }

                     assert.equal(response.statusCode, 201, "Error: Response Code");
                     cb(null);


                });

            //});

        }, function complete(err) {
            done(err)
        });

    });

正如您所看到的,两行单独的行被注释掉 - 我想将它们包括在内,以便我可以轻松地看到每个单独测试的结果,但随后我遇到了这种尴尬的情况:在异步回调旁边触发测试回调。每个。

有没有人以前见过这种情况,并且知道一个好的解决方案,让测试人员可以轻松地看到循环中每个测试的结果?


不要筑巢it来电。同步调用它们。

Nested it在 Mocha 中打电话从来都不好。也不是it异步执行的调用。 (这test可以是异步的,但你不能call it异步。)这是一个简单的测试:

describe("level 1", function () {
    describe("first level 2", function () {
        it("foo", function () {
            console.log("foo");
            it("bar", function () {
                console.log("bar");
            });
        });

        setTimeout(function () {
            it("created async", function () {
                console.log("the asyncly created one");
            });
        }, 500);
    });

    describe("second level 2", function () {
        // Give time to the setTimeout above to trigger.
        it("delayed", function (done) {
            setTimeout(done, 1000);
        });
    });
});

如果你运行这个,你将不会得到嵌套测试bar将被忽略并且异步创建测试(delayed) 也将被忽略。

Mocha 没有为此类调用定义语义。当我在撰写本文时使用最新版本的 Mocha(2.3.3)运行测试时,它只是忽略了它们。我记得 Mocha 的早期版本会识别这些测试,但会将它们附加到错误的位置describe block.

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

Mocha 测试用例 - 嵌套的 it( ) 函数是否合规? 的相关文章

  • 如何从 javascript 错误对象读取错误消息

    有人可以帮我解决以下问题吗 我正在通过 redux 操作进行后调用 如下所示 export const addEmployee firstName surname contactNumber email gt async dispatch
  • 使用非常大的背景位置偏移是否存在性能问题?

    我正在构建一个进度条控件 并且正在研究它实际上并不显示进度 而只是旋转 正在发生某事 的指示器的情况 我的设计基本上是交替的对角条纹 本质上是一个像这样的理发杆 但是 旋转 由于希望将尽可能多的负载转移给渲染引擎 我想为此使用 CSS 过渡
  • 多次训练brain.js?

    在第一次训练后 如何将新信息 仅新信息 而不是所有信息 因为这会花费太多性能 训练到我的用 Brain js 制作的神经网络 它有点粗糙 但您可以使用以下结构来实现 如果我们加入 2 个训练数据集 旧数据集与新数据集 然后重新训练keepN
  • 如何使传单圆圈标记可拖动?

    使用传单 我创建了一个L circleMarker我希望它是可拖动的 var marker L circleMarker new L LatLng 48 94603 2 25912 draggable true bindPopup Circ
  • 根据 MVC,哪种项目结构是正确的? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我注意到诸如flask通常有一个名为views容纳 app route def index return render template ind
  • 将 SVG 路径转换为绝对命令

    给定一个 SVG Path 元素 如何将所有路径命令转换为绝对坐标 例如 转换此路径
  • 如何强制 tsc 忽略 node_modules 文件夹?

    我正在使用 tsc 构建任务 不幸的是 我总是从节点模块文件夹中收到相同的错误 Executing task node modules bin tsc cmd watch p tsconfig json lt node modules ty
  • setTimeout范围问题

    我在控制玩家重生的函数内部定义了一个 setTimeout 我正在创建一个游戏 var player death function this alive false Console log death var timer3 setTimeo
  • 在 UIWebView 中禁用复制和粘贴

    几乎 我已经尝试了一切方法来禁用复制 粘贴UIWebView但对我来说没有任何作用 我正在加载我的UIWebView来自字符串 字符串数组 如下所示 webView loadHTMLString NSString stringWithFor
  • 如何防止输入文本中出现“后重音”

    我相信这是一个简单的问题 但在谷歌上搜索几个小时后我找不到任何答案 也许我无法在搜索中使用正确的单词 P 我有一个 javascript 方法 可以防止用户用数字以外的其他字符填充文本框 如下面的代码所示 它在 KeyDown 事件中使用
  • jquery 中可点击 div 中的按钮

    我有整个 div 您可以单击它来切换该 div 的主要部分 问题是我在该 div 中也有可点击的按钮 当我点击它时 它会执行它应该做的事情 但同时也会切换整个 div 我怎样才能禁用它 Use event stopPropagation 单
  • 使用 JavaScript 防止网页导航离开

    如何使用 JavaScript 防止网页导航离开 Using onunload允许您显示消息 但不会中断导航 因为为时已晚 然而 使用onbeforeunload将中断导航 window onbeforeunload function re
  • 将文本字段限制为仅包含数字的最佳方法?

    I m using the following Javascript to restrict a text field on my website to only accept numerical input and no other le
  • 在循环中调用 setTimeout 未按预期工作

    下面的 JavaScript 应该 在我看来 以 0 5 秒的间隔播放一系列音符 但它会将它们全部作为一个同时的和弦来演奏 知道如何修复它吗 function playRecording if notes length gt 0 for v
  • 检查浏览器空闲的替代方法

    我有一个简单的网络信息亭 在鼠标未使用 jQuery 移动 30 秒后显示用户操作提示 var i null body wrap mousemove function clearTimeout i overlay fadeOut i set
  • 如何使用 Javascript 在 html 文件中搜索字符串?

    我有 5 个 html 文件 并且有一个搜索表单 我想用它来搜索这些 html 文件中的文本
  • 从请求url获取hash参数

    我有这样的网址 http www coolsite com daily plan id 1 http www coolsite com daily plan id 1解析该字符串并读取哈希值 id 之后的值 的最简单方法是什么 谢谢 在客户
  • 什么时候可以使用Javascript,什么时候不可以?

    不使用太多 javascript jquery 是个好习惯吗 我们应该尽可能避免它 为了良好的可访问性 吗 什么时候可以使用 JavaScript 什么时候不能在网页设计和开发中使用 JavaScript 在什么场景 什么条件下 Updat
  • 无论我将其添加到何处,Azure 应用程序服务(节点)CORS 源都无法工作

    Azure CORS 设置似乎根本不起作用 除非我指定 任何和所有请求都将返回 has been blocked by CORS policy Response to preflight request doesn t pass acces
  • 在 Firestore 文本字段中存储文本文件并删除换行符

    我正在尝试将 CSV 文件存储在 Cloud Firestore 内的文本字段中 然而 Firestore 正在删除所有换行符并将整个 CSV 文件存储为一行 这Firestore 数据类型文档 https firebase google

随机推荐

  • 根据用户角色类型更改布局

    我是 MVC 新手 我浏览了堆栈上的类似帖子 但它们似乎对我的问题没有帮助 我有两个角色管理员和用户 当一个人登录时 我希望布局根据该人是否登录而改变Admin特权或User特权 My Admin布局是 Layout cshtml My U
  • 存储大量会话数据的最佳位置[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 HTML/CSS UI 构建原生 C++ 应用程序? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否可以在使用 HTML 和 CSS 作为用户界面的同时开发 C 程序 我了解如何使用 Webkit 容
  • Python 中有依赖注入容器吗?

    一直在摆弄 python 像往常一样 它让我严格的静态类型面向对象世界变得有点混乱 Python 支持鸭子类型 没有基于接口的编程的可用概念 如 C 接口 并允许全局变量 有了所有这些好处 依赖注入容器真的有任何意义吗 或者 Python
  • 如何在ios 6中的地图上绘制路线?

    我想显示地图并在地图上绘制路线 我的应用程序支持 ios 4 plus 那么我应该如何使用地图在 ios 6 和以前的版本上工作 我还想知道我应该在我的应用程序中使用自定义地图视图来显示地图和路线 还是应该使用 UIApplication
  • Objective C 中的网页抓取

    有没有用于解析 HTML 的 Objective C 库 比如 python 的 BeautifulSoup 谢谢 从Apple的部分来看有NSXML文档 http developer apple com library mac docum
  • 当 hashcode() 返回零时,对 Collection 实现有何影响

    好吧 只是为了知识 它对像这样的 Collection 实现类有什么意义hashmap hashset等等如果object s hashcode方法总是返回0 in a demoClass 我知道这与putForNullKeyhashmap
  • 表视图单元格的圆角半径

    我需要更改单元角半径 如下图所示 func tableView tableView UITableView willDisplayCell cell UITableViewCell forRowAtIndexPath indexPath N
  • 在 C# 中随机“排序”(随机播放)整数列表的最有效方法

    我需要以最有效的方式对整数列表 0 1999 进行随机 排序 有任何想法吗 目前 我正在做这样的事情 bool bIndexSet new bool iItemCount for int iCurIndex 0 iCurIndex lt i
  • Microsoft.Data.Sqlite.SqliteException:“SQLite 错误 14:‘无法打开数据库文件’。”

    我收到此错误 Microsoft Data Sqlite SqliteException SQLite 错误 14 无法打开数据库文件 当我尝试运行此代码时 它是一个 UWP 应用程序 并且我正在使用 sqlite private void
  • “无法将 ?attr/colorPrimary 转换为可绘制对象”

    我正在开始一个新项目 所以该项目或多或少是 空的 我刚刚添加了一个 MainActivity 和一个 MainActivity Fragment 我根本没有向它们添加任何代码 现在 我编辑 styles xml 使其看起来像这样
  • 应用程序未配置为通过 Google Play 计费

    我正在开发一个 android 项目 我正在尝试实现 In App Billing V3 我已将我的应用程序上传到 Google Play 并向该应用程序添加 IAP 我可以成功检索我的应用程序的 IAP 列表及其价格 但当我实际尝试购买时
  • 调整窗口大小时会扩展的字体大小

    如何在 HTML 中制作字体 以便当我扩展窗口时 文本的大小也会扩展 有点像为文本设置一个百分比 该文本将占其所在框的大小的百分比 这是我希望发生的情况的说明 box text font size 50 现在让我们说 box是 200 像素
  • 如何将共享库与 --as-needed 和 automake 链接起来?

    如何链接共享库 as needed使用Automake 当我尝试将标志添加到LDFLAGS I saw libtool如此称呼 bin bash libtool mode link Wl as needed dependencies 这会导
  • EWS 托管 API - 如何将项目从一个邮箱复制到另一个邮箱

    我正在编写一个应用程序 C 来将联系人 约会 任务等从一个邮箱同步到另一个邮箱 我能够使用 SyncFolderItems 检索对这些项目的更改 但找不到将更改复制到其他邮箱的方法 看起来我必须为目标邮箱上的每种类型创建一个新项目 如果是这
  • Spring框架使用了哪些设计模式? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Spring框架使用了哪些设计模式 使用了大量不同的设计模式 但有一些明显的 代理 大量使用AOP http static sprin
  • angularjs 中的选项卡无法与 UI-Router 和 UI-bootstrap 正常工作

    我正在使用 MEAN js 样板 您可以找到完整的代码here https github com meanjs mean 从列表中选择一篇文章后 我尝试向呈现的页面添加 2 个新选项卡 对于此任务 我决定对 Angular js 使用 UI
  • OutOfMemoryError:位图大小超出 VM 预算:- Android [重复]

    这个问题在这里已经有答案了 可能的重复 Android 将图像加载到位图对象时出现奇怪的内存不足问题 https stackoverflow com questions 477572 android strange out of memor
  • 执行 Google 表格的应用脚本代码时遇到问题

    我在使用以下脚本时遇到了一些问题 这里的工作表名称是 仪表板 freshSheet 下的第一段工作不正常 问题是 每次运行代码时 以下代码都会产生 A1 K4 的两个保护 Dashboard A1 K4 和 Dashboard A1 K4
  • Mocha 测试用例 - 嵌套的 it( ) 函数是否合规?

    我有这样的情况 我想我想要嵌套it Mocha 测试中的测试用例 我确信这是错误的 我没有看到任何建议来做我正在做的事情 但我目前不知道更好的方法 基本上 我有一个 父 测试 在父测试内部有一个包含所有 子 测试的 forEach 循环 i