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

javascript - sinon.spy(func) 即使在被调用时也不会产生被调用

我有一个测试正在监视一个存根的方法。该方法正在伪造依赖项。我可以验证该方法实际上正在被调用。我什至可以验证它是用预期的参数调用的。true但是,间谍在查看called或时没有提供calledWith

mailerStub是代理mailer依赖项的方法。

我什至console.log为 the放置了一个spy.displayName,它mailer和预期的一样。

我在这里做错了什么?

0 投票
1 回答
756 浏览

reactjs - Sinon.stub 在测试中被调用,但期望被调用语句失败

我有一个无状态的反应组件,它有一个我正在尝试测试的 onClick 方法被调用。

我这样做的方法是设置一个带有默认值的道具,指向将在生产中调用的方法,这样我就可以通过 sinon.stub() 在我的测试中测试点击事件。

所以这一切都很好。存根被调用。我知道这一点,因为我添加.returns(console.log("called"));到存根并在控制台中看到它打印出来。

但是当涉及到 时expect(onClickStub).to.have.been.called,我的测试失败了,说它没有被调用。

我的代码涉及一个无状态组件,所以我用一个快速的 TestWrapper 类包装它以进行测试。我不确定上下文是如何工作的,但我认为这对于测试并不是完全必要的。

一切都在这里:

0 投票
1 回答
406 浏览

angularjs - 使用 sinon、mocha、chai 进行角度测试

我想用 mocha、sinon 和 chai 测试我的 Angular 应用程序。特别是我对提交功能感兴趣。如何为 LoginResoure 创建模拟或存根以测试此功能。

谢谢!

编辑:以前我用茉莉花做下一种方式:

或者如果我想模拟@resource

0 投票
1 回答
1014 浏览

karma-runner - 因果报应与摩卡,柴,柴-as-promised 和 chai-sinon

我正在尝试让我的 Karma 测试套件与 Mocha、Chai、Sinon、Chai-as-promised 和 chai-sinon 一起运行。

它目前仅使用 mocha、chai 和 sinon 框架进行设置。

现在我尝试添加一些额外的 karma 插件,即 karma-chai-sinon 和 karma-chai-as-promised。然后将上面的更改为

在我的单元测试中,我有

但这给了我一个错误'TypeError:'[object Object]'不是一个函数......'但如果我这样做

它按预期工作。

我已经尝试检查 karma 插件代码但无法理解它们,我希望 karma 插件中的某个地方会说“chai.use(chaiAsPromised)”和“chai.use(sinonChai)”但他们没有. Karma 网站也没有真正解释插件/框架如何在幕后工作。

有人可以帮我设置吗?

提前致谢。

0 投票
3 回答
15228 浏览

node.js - 我如何期望在 nodejs 中使用带有 sinon、mocha 和 chai 的特定参数调用函数?

我一直在尝试确保Q.ninvoke使用传入的 args 进行调用时遇到问题。我是使用 Sinon、Mocha 和 Chai 进行测试的新手。我已经尝试了我在网上找到的所有东西 2 天了,但我仍然无法通过测试。我究竟做错了什么?

这是我正在测试的代码。

这是我的测试。

这是我得到的错误。

1)Upl​​oadCommand .initialize 当文件被成功读取时 Q.ninvoke 应该用 args 调用: AssertionError: expected { Spy } to have been called with [ Array(3) ]

0 投票
1 回答
346 浏览

unit-testing - 正确使用 sinon 模拟

我正在使用 sinon mock 如下

如果我们调用 sandbox.restore() 是否必须调用 mock.restore()?

这是使用 sinon 模拟的正确方法吗?

0 投票
1 回答
201 浏览

javascript - 如何在 Angular js 中为控制器编写测试用例

最近我们开始为我们的应用程序编写测试用例,我们需要帮助为控制器编写测试用例。我们正在使用 Mocha、chai 和 Snion 库来编写测试用例。

这是 plunker 链接,其中包含我们的控制器代码。谁能帮助我们如何为这个控制器编写测试用例?我们将在此基础上实现其余部分。我们需要使用这个控制器进行初始推送。

http://plnkr.co/edit/oginuqO0afxnWbVMos0f?p=info

这是代码:

非常感谢任何帮助。

在此先感谢您,如果您对此有任何疑问,请告诉我。

0 投票
1 回答
1447 浏览

angularjs - 在 Angular 中制作 sinon 存根时,获取未定义不是对象错误

我有以下测试代码:

我正在注入一个控制器,其设置如下:

运行测试时,我收到以下错误:

PhantomJS 1.9.8 (Mac OS X 0.0.0) imagesCtrl "before each" hook: workFn for "should exist" FAILED TypeError: 'undefined' is not an object (evalating '$q.resolve') at..src/js /controllers/imageCtrl-test.js:18;

这个错误是指 this.loadPics = sinon.stub().returns($q.resolve({.....}));

0 投票
2 回答
1536 浏览

angularjs - 如何用 sinon 模拟 Angular 的 $http?

我正在尝试在 Mocha 测试中使用 sinon 对 angular 的 $http 进行简单的模拟。

但是无论我尝试什么,我的间谍都没有任何结果。

searchResource.typeAhead 是我正在测试的功能。它根据其参数调用 $http ,我想确保请求是正确的。

searchResource.typeAhead 返回一个承诺,但我尝试将检查代码放入 .then() 并且它永远不会执行。

0 投票
1 回答
220 浏览

javascript - 与 Chai 和 Sinon 测试承诺的服务

我坚持在 Chai 和 Sinon 中测试 Promies。通常,我使用 is wrapper 为 xhr 请求提供服务,它返回承诺。我试图这样测试它:

我对此的注释:

// 在期望完成断言之后调用 spy2
// 尝试了var timer = sinon.useFakeTimers()timer.tick(510);没有结果
// 尝试了 chai-as-promised - 不知道如何使用它:-(
// 不能sinon-as-promised只安装在我的环境中可用的选定 npm 模块

任何想法如何修复此代码/测试此服务模块?