问题标签 [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 投票
1 回答
1085 浏览

javascript - 在获取和返回 DOM 元素之前让函数等待

使用 Mocha > Chai > PhantomJS 进行一些无头测试。一切都已设置并正常工作,但我试图用错误的凭据填写表单,然后检查是否创建了 DOM 元素。

我想做的基本上是这样的:

但我得到:“未捕获的类型错误:无法读取属性‘应该’为空”

...因为 div.status-oops 还没有。我在 Chrome 控制台中得到了相同的结果,但如果我在几秒钟后尝试显示相同的文本,它就可以正常工作。

任何想法如何延迟退货?

0 投票
1 回答
1253 浏览

node.js - 使用存根函数在我的测试中未捕获事件

我遇到了一个我不明白的问题。我发出的事件在我的测试中没有被捕获。以下是以下代码 ( event.js):

以及相应的测试:

现在,这是我所看到的:

  • 该事件实际上是在测试期间发出的,因为console.log('emitted');发生了
  • exec函数实际上是存根的,因为console.log(cmd);发生

但是测试因超时而失败,并显示错误消息:

如果我从测试中删除存根,测试运行正常。如果我增加超时我仍然有同样的问题。

知道我做错了什么吗?

问候

0 投票
1 回答
523 浏览

javascript - 浏览器中的 Mocha:如何使用 chai.assert 获取报告

使用 chai.assert 时,我无法让 Mocha 产生输出。 http://jsfiddle.net/web5me/244PT/6/

它与 chai.should 和 chai.expect 完美配合。 http://jsfiddle.net/web5me/244PT/#base

0 投票
2 回答
1904 浏览

javascript - 诗乃找不到方法'spy'

我正在尝试将 require.js/mocha/chai/sinon 与骨干应用程序一起使用来攀登学习曲线。当我运行这个测试时:

我得到TypeError: Object #<Object> has no method 'spy' 了定义 helloSpy 的那一行。为什么?请注意,第一个测试通过。

这是完整的项目:

https://github.com/ErikEvenson/spa-testing-study/tree/bcc5b71b3b6f8b24f7e8d01673b50682498ee1b2

注意使用那个特定的提交。

0 投票
2 回答
1815 浏览

node.js - 在测试失败之前允许多个 AssertionErrors

有没有一种传统的方法来尝试在测试失败之前总是对一组asserts 进行评估?

假设我的测试评估了页面上某些名称的存在:

现在,如果 Alice 丢失,测试将失败并出现一个错误:

但是,我希望收到所有三个名称都丢失的通知,因为在这种情况下,如果一个条件失败并不会阻止评估其他条件。

与其编写一个包装方法来聚合这些检查的可能输出并引发单个错误,我希望有第三方库可以“专门”处理这类事情,或者可能是我忽略的内置功能.

0 投票
1 回答
791 浏览

unit-testing - 编写单元测试来检查事件是否被触发

我想知道什么是正确的方法。首先是测试代码。

看起来很简单,但由于事件通常是异步的,所以这是行不通的。

这种方式测试显然会失败。然后我想到了这样的事情......

这可以正常工作,并且当未触发事件时,测试将在 2 秒后失败。但是没有验证,它只被触发了一次。也许我需要另一个测试?因为我已经知道它至少被触发了一次,所以我可以在这个之后使用 test 和 spy 。虽然对于一个事件来说似乎太麻烦了。

另一种“肮脏”的方法可能是:

它可能不是真正的防弹。可能需要更大的超时时间才能确定。然而,这意味着测试将需要更长的时间来处理,这不是一个好主意。

您还有其他想法应该如何解决?

0 投票
2 回答
30875 浏览

javascript - 使用 Mocha/Chai 测试 JS 异常

尝试测试一些使用 Mocha/Chai 引发异常的代码,但没有运气,这是我要测试的简单代码:

这是我的测试:

但是,当我运行规范时,测试失败并引发异常。

我在这里做错了什么?

0 投票
4 回答
337 浏览

javascript - 有没有办法提高这个表达式的浮点精度?

我有一个表达式,用于通过在两个值之间进行插值来估计百分位数。

这给了我非常好的实际结果。但是,在我的单元测试中,我无法断言事情是否正常工作,因为我一直得到显着的舍入错误。

在三个测试用例中,我尝试获取第 40 、50和60百分位数,从而得出以下计算结果:

这产生:

这使我的断言失败,它正在寻找1.2第 40百分位数。

有没有办法重组这个表达式以提高所有情况下的准确性?如果没有,是否有一种简单的方法可以使用 chai 断言解决此问题?

0 投票
1 回答
4376 浏览

javascript - Mocha:done() 和回调出错

我被困在 mocha 的部分测试代码上,其中测试包含在 getUserMedia 的回调中:

这里没有定义done(),但是测试成功了。

在这里,我收到一个错误:

,但 mocha 界面仍将测试显示为已验证。(绿色勾号)

我做错了什么,还是 done() 被窃听了?

0 投票
4 回答
9576 浏览

javascript - Chai:是否期望错误取决于参数

我一直在尝试编写一个处理错误的函数的文本,如果它是一个有效的错误,它就会被抛出,但如果不是,那么什么都不会抛出。问题是我似乎无法在使用时设置参数:

理想的情况是使用:

有没有办法实现这个功能?

函数代码:

以及测试代码(未按预期工作):