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

unit-testing - 如何使用 sinon 对 localStorage 进行单元测试

我正在尝试localStorage使用 sinon 进行测试。基本上我对单元测试很陌生,所以这可能是非常基本的。

更新

我设法想出了这个,但现在它给了我一个新的错误Should wrap property of object

测试

0 投票
0 回答
36 浏览

angularjs - 在 sinon js 单元测试中.then 之后无法测试行

sinon.js我是, mocha,的新生儿chai。我正在尝试使用上述库编写单元测试。项目前端AngularJSECMASCRIPT6.

从我的文档中Sinonjs我什么都不懂!情况很复杂。

这是我的 JS 片段:

这是我的单元测试片段:

但不幸的是,我被困住了。我的代码没有在行后运行.then

我期待它应该抛出错误。因为我没有监视userAlertsServiceand navigationService

请让我知道做错了什么

0 投票
1 回答
1194 浏览

reactjs - 模拟酶中跨度标签的点击

我的组件中有一个跨度标签,我需要使用酶单击它

这是我的测试

我很困惑要点击什么,通常会有一些 div 类或其他可找到的标签

0 投票
3 回答
6364 浏览

node.js - 如何在 Express js 单元测试中使用 sinon js

嗨,我想对我的 express js 代码进行单元测试,我想模拟数据,所以在搜索多个网站和博客后,我找到了这个库,但我不清楚如何使用这个库来模拟或数据。我的测试代码是

目前此代码正在从数据库中获取数据,但我希望使用模拟数据进行单元测试。我怎样才能做到这一点?

__编辑__

我想测试写在 Express js 路由文件中的代码。我在app.js文件中调用这条路线,就像这样

现在客户路线文件包含的代码是

我想使用模拟数据测试“get”方法的响应

0 投票
1 回答
3752 浏览

javascript - 使用 jsdom、sinon、mocha 和 chai 测试图像加载

谁能帮我测试以下功能

在我的测试文件Image中可以通过 jsdom 获得。我希望我可以测试cb称为Once

0 投票
1 回答
572 浏览

node.js - Stubbing out a promise inside a method using chai and sinon

My function under test looks roughly like this;

And I am trying to test this using Chai and Sinon.

I've tried following different guides, my current incantation looks like;

I cannot get externalService.post stubbed out correctly. Any help would be greatly appreciated.

I am completely new to Chai and Sinon – so fully expect to be doing something stupid.

0 投票
1 回答
295 浏览

node.js - Stub isAuthenticated 用可组合中间件编写

我有这个中间件功能,用可组合中间件包编写。

我尝试用 Sinon.js 存根它。如果是这样

我会做的

但问题是我的函数使用可组合中间件,我不知道如何存根。

0 投票
1 回答
1209 浏览

javascript - 为什么我会收到预期错误?

我为我的库创建了一个规范,以确保定期发出一个值。我正在使用 sinonjs 并创建了一个回调作为间谍。我在 sinonjs 中使用假计时器来模拟额外的两个 10 秒间隔。但是,当测试首次使用 tick 方法时,就会发出错误。我产生以下错误

下面是我的测试代码

这是我的生产代码

有谁知道为什么我可能会收到此错误?

0 投票
0 回答
25 浏览

node.js - 重构实现承诺后,Sinon + Chai 的测试失败

我在这个应用程序中得到了很多回调,最终成为“回调地狱”的一个很好的例子。具有 200 或 300 行和 10、15 个嵌套回调的方法。

然后,作为一个好的实践,我分离了大部分回调,命名为 then 并使用 Bluebird Promise 创建了更有组织的“then-chains”。

我不知道为什么,因为我实现的所有测试和方法都非常相似,所以同一方法的两个测试用例都失败了。

它使用 Sinon 检查是否调用了next函数和 DAO 方法(进行 Mongo 查询)。

然后我意识到这个方法的变化是我将一些在该方法开始时运行的逻辑转移到了一个 Promise 中。

对“下一步”的调用没有得到评估,true因为测试没有等待承诺完成并错误地返回。

这是显示不良行为的测试部分:

我已经更改了控制器方法,但基本上,我在承诺中包含了逻辑。把它拿出来解决问题。

0 投票
1 回答
228 浏览

javascript - Sinon:测试函数调用和var变化的顺序

当我们有

有没有办法在调用 testFunction 之前测试 testVar 是否被更改?

编辑:看起来没有。但!如果变量是对象属性,您可以执行类似的操作。在下面检查我自己的答案。