问题标签 [sinon-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 回答
11825 浏览

javascript - 已使用对象断言调用

我正在监视的函数,接收对象作为参数。我需要断言该函数是使用对象的某些属性调用的。

例如:我的 SUT 有:

在我的测试中我可以这样做:

并且有效(很高兴知道它fn已被调用)。现在我需要确保正确的对象已被传递到函数中。我只关心 foobar属性,即我必须为参数的特定属性设置匹配。如何?

upd: sinon.match() 似乎适用于简单的对象。让我们提高标准,好吗?

如果我想在zap断言中包含函数怎么办?我该如何做?

0 投票
1 回答
793 浏览

node.js - 如何测试具有随机值属性的对象?

我正在编写一个单元测试,我正在模拟一个对象(客户端),它有一个 _request 方法,它需要一个对象和一个回调函数。对象参数有几个具有随机值的属性:

我该如何为此设置测试?

或者我怎样才能忽略这些特定属性并测试其他属性?

谢谢。

0 投票
1 回答
563 浏览

javascript - 迁移到 Windows 后 karma-sinon-chai 失败

我有在 Karma 下运行的单元测试,并且正在使用 sinon-chai 库。

在 Mac 上一切正常,但现在我已移至 Windows,出现以下错误:

那个文件

我希望第一行的条件会返回true,因为我在 Node 中运行,但由于某种原因既不是“要求”也不module是定义的,所以它最终在上面指出的点结束。

有任何想法吗?

0 投票
1 回答
1216 浏览

node.js - 使用 mocha 和 sinon-chai 测试 express 中间件的使用

我在测试 middelware 使用时遇到了一些问题,需要您的帮助!

配置我的应用程序:

我想用测试来覆盖它(使用 mocha 和 sinon-chai 用于存根和间谍)。因此,当我为摩根的使用编写测试用例时:

我将 app.use() 设置为间谍,并希望它以 morgan('dev') 作为唯一参数来调用。

我收到这样的错误:

想不通为什么。在使中间件使用功能成为间谍时,有什么需要关注的吗?

提前致谢。

0 投票
1 回答
93 浏览

javascript - 在断言函数调用时,柴间谍无法识别 Sinon 存根函数

我有两个返回 bluebird 承诺的异步函数:

我有另一个模块调用这些方法,如下所示:

在我的测试用例中,我想检查 Bar.Async2 是否被调用并且我有以下测试用例失败:

我从控制台日志中知道 Async2 确实被调用了,所以我想知道为什么间谍不接它?

0 投票
1 回答
894 浏览

javascript - 从 sinon 存根返回 sinon 存根

我在让一个 sinon 存根返回/解决另一个 sinon 存根时遇到问题。我正在使用 sinon、chai、chai-as-promised 和 mocha。

我正在按顺序执行许多异步任务,我要测试的代码如下所示:

我为此创建存根的尝试如下所示:

“saveit”方法在 Terminal.prototype 中,这就是为什么我需要在那里存根。当我尝试运行它时,我收到错误:

在线:

但是,如果我将终端对象转储到控制台中,它看起来还不错,就像任何其他存根对象一样(至少在我看来是这样)。存根 saveit() 方法可以在测试中“独立”调用。但是,每当我通过 chai 的“return”或 chai-as-promised 的“resolve”方法返回它时,我都会收到此错误。

知道为什么会这样吗?

0 投票
1 回答
495 浏览

javascript - AngularJS/Ionic/SinonChai - 如何模拟 $ionicModal.fromTemplateUrl 函数

我在测试离子模态控制器时遇到问题。问题(或者至少是我关注的问题)是模拟 $ionicModal.fromTemplateUrl 函数。根据 ionic 文档,它应该返回一个解析为模态实例的承诺。

这是我的工厂:

这是我的测试:

我也不确定我的 getController 函数是否会正确返回控制器。这是我第一次使用 $ionicModal,所以任何指针都值得赞赏。谢谢。

0 投票
2 回答
2197 浏览

javascript - 用 mocha chai 和 sinon 测试 promise

我想使用 和 测试我的承诺解析处理程序和承诺拒绝处理程序。此外mocha,我已经设置了插件和插件。chaisinonsinon-chaisinon-stub-promise

这是我的要求语句块:

这是我的测试套件:

我发现自己遇到了这个错误:

0 投票
2 回答
250 浏览

javascript - 使用 Sinon 存根 PouchDB 失败

我试图存根 pouchDB 'put' 函数但在调用函数中但它失败了。

我的数据库功能-

我的测试功能:

控制台:在 req、res、testOutput 之后设置在 sinon.stub 之后 put 之后:在 addPendingRequest 之后

因此永远不会输入 PendingDB.put 并且我的测试 PendingDBTest.call 返回 false,因此失败。

0 投票
1 回答
120 浏览

javascript - 测试以确保调用函数内的 promise 内的函数?

我正在使用 Mocha、Chai 和 Sinon 来测试我的 Angular 代码。

我在一个名为 update 的函数中有一些代码需要测试

所有这些代码都在更新函数中。这一切都在我目前正在测试的控制器中。

当我在测试中调用 scope.update() 时,我想确保调用了 scope.addTabletoScope(x)。

在我运行测试之前的 beforeEach 中,我有一个间谍

因为该函数绑定到范围。

这是我运行的一项测试。

这失败了,因为 spy.call 是假的。

我尝试的另一件事是

这也行不通。我哪里错了?