问题标签 [chai]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - node.js 的断言库?
node.js assert 为单元测试提供的断言非常有限。甚至在我编写第一个测试之前,我就已经创建了一些断言,因为很明显我将继续重复使用它们。
你能推荐一些好的断言库来测试常见的 javascript 情况(对象结构、对象类等)吗?
理想情况下,它应该与 nodeunit 很好地集成(或者更好地扩展它的断言)——我的断言没有,我必须将它们test
作为额外的变量传递......
我见过的唯一一个是柴。你能说什么呢?
javascript - 如何检查两个对象是否具有相同的一组属性名称?
我在我的应用程序中使用 node、mocha 和 chai。我想测试我返回的结果数据属性是否与我的模型对象之一相同的“对象类型”(非常类似于 chai 的实例)。我只是想确认这两个对象具有相同的属性名称集。我对属性的实际值特别不感兴趣。
假设我有下面的模型 Person 。我想检查我的 results.data 是否具有与预期模型相同的所有属性。所以在这种情况下,Person 有一个名字和姓氏。
因此,如果results.data.lastName
两者results.data.firstName
都存在,那么它应该返回 true。如果其中任何一个都不存在,它应该返回 false。如果 results.data 有任何额外的属性,比如 results.data.surname,那么它会返回 false,因为 Person 中不存在 surname。
该型号
javascript - 浏览器中的 Mocha 和 Chai 异步测试
我无法使用 mocha 运行异步测试。
这是我的代码
两个日志都显示,但从不调用 done()。
javascript - 测试 Mocha 中抛出的错误
我希望能在这个问题上找到一些帮助。我正在尝试为我正在编写的应用程序编写测试。我已将问题提炼为以下示例代码。我想测试是否引发了错误。我使用 Testacular 作为测试运行程序,以 mocha 作为框架,chai 作为断言库。测试运行,但测试失败,因为抛出了错误!任何帮助是极大的赞赏!
javascript - 如何使用 Mocha 测试 Promise
我正在使用 Mocha 来测试一个返回承诺的异步函数。
测试承诺解析为正确值的最佳方法是什么?
javascript - 具有相对路径的 jsdom 和 script 标签
我在这里有一些像这样的单页演示:http: //notjs.org/examples/forms/formmode_demo.html
我想,哇,如果可以在我现有的 mocha chai badness 设置中编写一些测试来直接测试示例,那就太棒了:
如果我能做到这一点,那么我将永远不会遭受那种“你的示例 x 几个月前停止工作”的尴尬时刻。
我让它工作,但只能使用来自 http:// urls 的页面中的脚本标签。如果我必须在测试之前将包部署到服务器,那么测试的效果就不那么好了。
示例页面加载 jquery、underscore 和 notjs 并且需要以作为独立演示运行。它还应该能够从本地文件系统运行,并且可以使用相对 url。我最初让页面上的 notjs 脚本标签指向一个相对路径,例如
代替
但是然后 notjs.basics.js 永远不会加载(window.Notjs == undefined 在测试中)并且我没有看到来自 jsdom 的任何错误。我尝试设置 documentRoot jsdom 选项,但这似乎不起作用。
作为参考,loadExample 方法和我的 jsdom 设置的其余部分在这里: https ://github.com/bee-hub/notjs/blob/master/test/testHelper.coffee
感谢您的任何帮助和建议。
node.js - Zombie.js 多次访问的“断言未定义”?
我正在使用 Zombie.js 和 Mocha 设置集成测试,并遇到了一个令人费解的问题,即只有第一次browser.visit()
调用似乎成功。我的规格如下所示:
第一个加载的测试顺利/docs/app.html
通过。但是,所有后续测试都失败了,产生如下的堆栈跟踪:
Zombie 是否browser.visit()
不打算被多次调用,还是这里有其他问题?
编辑注释版本:
- Node.js v0.10.1
- 摩卡 v1.8.1
- 柴 v1.5.0
- 僵尸.js v1.4.1
javascript - 在 Mocha 测试中找不到 Chai 导出
我创建了简单的摩卡测试。当使用 Node “assert” 模块时,它可以完美运行。我从命令行运行它(Mocha 作为全局节点模块安装):
脚本如下所示:
好吧,我尝试添加 Chai 而不是断言库。我先安装了它:
所以,我的项目中已经创建了 node_modules 目录。到目前为止很棒。然后,我修改了脚本以使用 Chai:
它不起作用,Mocha 测试失败并出现 TypeError:
我认为 Chai 没有定义应该所以它是未定义的。
这怎么可能?
我怎样才能让我的测试用 Chai 运行?我试图在全球范围内安装 Chai,但没有任何效果。我也运行了脚本,-r chai
但没有任何效果。
显然,Chai 模块已加载,但未定义变量(Object.prototype 属性)。我怎样才能解决这个问题?
javascript - 如何使用 Chai 检查值是否在对象中?
是否可以使用 Chai 断言库测试该值是否包含在某个数组中?
例子:
我需要做这样的事情(但是它不起作用):
我该如何测试呢?