问题标签 [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.

0 投票
2 回答
1852 浏览

node.js - 如何使用 mocha-phantomjs 测试 Node js 应用程序

我需要使用 mocha-phantomjs 测试我的 Node js 应用程序。我已尝试使用以下代码来测试应用程序,但我收到错误为“ReferenceError:找不到变量:需要”。如何解决这个问题。

测试.html

测试.js

在将 html 文件作为 mocha-phantomjs test/test.html 运行时,我收到错误消息

0 投票
7 回答
161930 浏览

node.js - 在mocha测试中调用异步函数如何避免超时错误:超过2000ms的超时

在我的节点应用程序中,我使用 mocha 来测试我的代码。使用 mocha 调用许多异步函数时,出现超时错误 ( Error: timeout of 2000ms exceeded.)。我该如何解决这个问题?

0 投票
1 回答
491 浏览

ember.js - 使用 Mocha 和 Chai 测试 Ember (v1.0.0-rc.3) 嵌套控制器

我正在尝试使用 Mocha 和 Chai 为 Ember (v1.0.0-rc.3) 应用程序的控制器编写测试用例。我的一个控制器正在使用另一个控制器,如下所示

我写了testCase如下:

现在每当我尝试运行测试用例时,我都会遇到错误

请帮我解决这个问题。如果有人向我提供一些链接,我将不胜感激,我可以在其中学习使用 mocha 和 chai 进行最新的 ember.js 应用程序测试。

0 投票
2 回答
1848 浏览

node.js - 僵尸可以测试一个元素不存在吗?

我正在尝试在快速应用程序上使用zombie.js(带有mocha)以确保某些元素不会显示在页面上。这是我尝试执行此操作的方法:

现在当我运行这个测试时,它总是失败:

  • 如果#whatever 存在,我得到这个:

    expected <div class="whatever">whatever</div> to not exist

  • 如果 #whatever 不存在,我希望测试通过,但我也会收到错误消息

    TypeError: Cannot read property 'should' of null

也许这是一个愚蠢的测试,但有没有办法进行这样的测试以使其通过?我在哪里做错了?

谢谢。

0 投票
1 回答
6809 浏览

jquery - .click() 在某些元素上无法在 mocha-phantomjs 中工作

我正在使用Mocha 测试框架Chai 断言库编写一些测试我一直在 chrome 浏览器中测试它们并且它们工作正常,但后来我在无头浏览器mocha-phantomjs和我的 .click() 事件中尝试它们发送某些元素似乎没有被触发,而其他元素正在工作。

测试成功登录网站,使用以下方法完成:

“#login”是一个表单提交按钮,点击这种方式可以正常工作。

接下来我想单击一个作为锚元素的菜单项。

这是它在 mocha-phantomjs 中停止工作的地方,即使它在 chrome 中工作正常。

所以很明显 .click() 函数已经定义并且可以工作,但不适用于这个元素。

我已经用尽了我的 google-foo。以下是我看到其他人提到并尝试过的其他一些事情:

使用 javascript dispatchEvent

这确实会触发 click 事件并将浏览器带到正确的 url,但它也会导致整个页面在 chrome 和 mocha-phantomjs 中重新加载,这会从头开始重新启动测试,将它们置于无限循环中......是否有一种在不导致页面重新加载的情况下使用它的方法?

使用 phantomjs 的 page.sendEvent()

如果您将元素的正确坐标传递给它,这应该会发送一个原生点击事件。我试图让它工作,但我似乎无法从正在运行的 mocha 测试中访问该页面。有没有办法从 mocha-phantomjs 测试中访问 phantomjs 页面变量?

任何帮助是极大的赞赏!

0 投票
2 回答
2515 浏览

requirejs - Karma 正在使用 RequireJS 加载测试,但实际规范没有运行

我有一个问题,我试图让 Karma 跑步者执行我使用 RequireJS 加载的 mocha 规范。不幸的是,我无法弄清楚为什么即使框架正在加载,规范也不会执行。以下是我希望的相关位:

然后这是我处理 requireJS 加载的 test-main.js 文件

这是我正在运行的规范示例:

这是我正在测试的代码示例:

输出简单地说:

0 投票
7 回答
113480 浏览

node.js - chai 测试数组相等不能按预期工作

为什么以下失败?

什么是正确的测试方法?

0 投票
3 回答
30449 浏览

javascript - Mocha, Chai:断言对象包含在对象数组中

Chai 有一个很好的方法来断言数组是否包含某个元素

给定一个对象数组,我想要的是类似的东西:

这可能吗?

0 投票
1 回答
431 浏览

javascript - 诸如 Chai 之类的断言库如何在不强制调用函数的情况下工作?

Chai中,您可以执行以下操作:

exist不是函数调用,但这仍然适用于测试框架。相反的 ( expect({}).to.not.exist) 导致测试失败,但同样exist不是函数调用。

这些断言如何在不让我调用函数的情况下工作?事实上,如果我试图说expect({}).to.exist()测试失败是因为exist不是函数。

0 投票
1 回答
569 浏览

json - API 测试套件的动态 JSON 检查

我目前正在开发一个开源 API 测试套件,该套件与一个名为Postman的很棒的 REST 客户端一起工作。

使用我的测试套件,我运行了一系列 API 调用来检查对预期 JSON 对象/数组(或其他)的响应。我认为我有一个很好的结构来比较两者,同时仍然允许响应/预期是动态的。

我通过允许(mustache-esque)语法表示响应的动态部分来计算出动态部分。基本上,如果 aa 值被格式化,{{content}}它会相应地处理它。这里的不同值将是:NOT_NULLSTRINGARRAYOBJECTNUMBER

我为此函数拥有的 sudo 代码如下所示:

认为这会正常工作,但我想检查一下在提出这个检查器时是否有任何明显的事情我错过了,或者是否有更有效的方法来进行这个相当复杂的检查。

提前致谢!

更新

在浏览了我的 sudo 代码之后,看起来我有一个尴尬的检查,不会给我预期的结果。上面的功能已经更新,希望现在可以正常工作。