sinon相关内容

用 Sinon 对 Mongoose 模型打桩

我想为特定模型中的 Mongoose save 方法创建一个存根,以便我创建的模型的任何实例都将调用存根而不是普通的 Mongoose save方法.我的理解是,这样做的唯一方法是像这样存根整个模型: var stub = sinon.stub(myModel.prototype); 不幸的是,这行代码导致我的测试抛出以下错误: TypeError: 无法读取未定义的属性“状态" 有人知道 ..
发布时间:2021-12-17 11:12:55 其他开发

轻松清理 sinon 存根

有没有一种方法可以轻松重置所有 sinon spys 模拟和存根,它们将与 mocha 的 beforeEach 块一起干净地工作. 我认为沙盒是一种选择,但我不知道如何为此使用沙盒 beforeEach ->sinon.stub 一些,“方法"sinon.stub 一些,“妈妈"afterEach -># 我想避免这些行some.method.restore()some.other.re ..
发布时间:2021-12-15 11:57:10 前端开发

与解构一起使用的 Sinon 存根函数

我希望存根我当前正在测试的文件中使用的函数.像这样的解构需要这个函数: const { theFunctionIWant } = require('path/to/module') 测试时,从不调用存根,而是继续调用真正的函数.但是当我“正常"需要它时(即:没有解构) const myModule = require('path/to/module') 然后正确使用存根,一切正常 ..
发布时间:2021-12-09 19:19:10 其他开发

如何在 JavaScript 单元测试中模拟 localStorage?

是否有任何库可以模拟 localStorage? 我一直在使用 Sinon.JS 进行其他大部分 javascript 模拟和发现它真的很棒. 我的初步测试表明 localStorage 拒绝在 firefox (sadface) 中分配,所以我可能需要解决这个问题:/ 我目前的选择(如我所见)如下: 创建我所有代码使用的包装函数并模拟这些函数 为 localStorag ..
发布时间:2021-12-09 19:03:18 前端开发

如何对 React-Redux 连接组件进行单元测试?

我正在使用 Mocha、Chai、Karma、Sinon、Webpack 进行单元测试. 我按照此链接为 React-Redux 代码配置了我的测试环境. 如何使用 Karma、Babel 和 Webpack 在 React 上实现测试 + 代码覆盖 我可以成功地测试我的 action 和 reducers javascript 代码,但是在测试我的组件时它总是会抛出一些错误. ..
发布时间:2021-12-02 10:32:06 其他开发

如何使用 Sinon 存根 AJAX 调用

我有一个函数可以向端点发出 AJAX 请求并返回 JSON.如何使用 Sinon 伪造 AJAX 请求,以便测试该功能是否正常工作? 解决方案 如果你正在使用 jQuery.ajax(),你可以这样存根: var returnData = {name: 'value'}var stub = sinon.stub($, 'ajax');stub.yieldsTo('success', re ..
发布时间:2021-10-26 17:13:12 前端开发

当作为事件的回调调用时,Sinon spies 如何注册一个被调用的 Vue 组件方法?

我的 vue 组件中有一个名为 testfn 的方法,每当 testevt 事件触发时都会调用该方法.此方法包含对 console.log 的调用,清楚地显示正在调用该方法. 使用vue-test-utils运行测试时,如果我为该方法创建了Sinon spy并直接调用该方法,该spy正确检测到该方法被调用: const wrapper = mount(MyComponent, {});va ..
发布时间:2021-09-20 19:44:42 前端开发

在 nodeunit 中使用 sinon 模拟

我正在学习将 sinon 与 nodeunit 结合使用,专门用于模拟.推荐方法是使用 sinon-nodeunit.根据文档,模拟应该可以通过mocktest 每个测试函数的参数. 然而,这似乎不起作用.如果我在包含以下内容的文件上运行 nodeunit — require('sinon-nodeunit');出口['测试 sinon-nodeunit'] = 函数(测试){模拟 = t ..
发布时间:2021-09-14 19:12:26 前端开发

sinon:如何存根整个类,而不仅仅是一个方法

我有一个正在测试的类,它创建了另一个类的实例.我想删除整个第二个类,以便它的构造函数永远不会被调用.例如,如果我有这个设置: Test.js class 测试 {构造函数(){}功能(){让 foo = 新 Foo()foo.hello()}} Foo.js class Foo {构造函数(){这.a = 1这.b = 2这个.c = 3console.log('原始构造函数')}你好 ..
发布时间:2021-09-14 19:11:18 前端开发

如何多次断言存根获取

使用 proxyquire、sinon 和 mocha. 我能够在第一次调用 fetch 时存根 fetch.但是在递归的第二个 fetch 调用中,我无法断言它.从输出来看,断言可能会在测试完成之前运行.您将在断言后通过 second fetch 控制台看到这一点. index.js var fetch = require('node-fetch');函数 a() {console ..
发布时间:2021-09-14 19:00:40 前端开发

如何在 Sinon 中存根一系列方法?

我知道如何使用存根替换一个函数. sandbox.stub(Cars, "findOne",() =>{返回汽车1 }); 但是现在我的函数中有一行我想测试我需要存根看起来像这样 Cars.find().fetch() 所以这里有一个函数链,我不确定我需要做什么.如何存根“查找"以返回可用于存根“获取"的内容? 解决方案 试试这个: sandbox.stub(Cars, "fin ..
发布时间:2021-09-14 18:56:11 前端开发

sinon - 监视 toString 方法

在我的文件中,我有这样的东西: if(somevar.toString().length == 2) .... 如何从我的测试文件中窥探 toString?我知道如何监视 parseInt 之类的东西: let spy = sinon.spy(global, 'parseInt') 但这对 toString 不起作用,因为它是在值上调用的,我尝试监视 Object 和 Object.pro ..
发布时间:2021-09-14 18:50:52 其他开发

如何使用桌面浏览器测试触摸事件?

我想为触摸事件编写一些测试用例.在我的代码中,我有以下逻辑来决定它是否在触摸设备上. if(document.documentElement.ontouchstart !== undefined){//我想写测试用例的内容} 现在我想把document.documentElement.ontouchstart伪装成不是undefined,这样内部逻辑就会被执行. 我尝试使用Sinon.j ..
发布时间:2021-09-09 18:59:14 前端开发

如何在 node.js 中存根 process.env?

我想用 bar 存根 process.env.FOO. var sinon = require('sinon');var stub = sinon.stub(process.env, 'FOO', 'bar'); 我很困惑.我阅读文档,但我仍然不明白.sinonjs docs sinonjs 就是一个例子,sinonjs 不行. 解决方案 根据我对 process.env 的理解 ..
发布时间:2021-08-31 19:38:41 其他开发