首页 > TAG信息列表 > sinon

纪念特洛伊英雄 Sinon - SAP UI5 Mock Server 使用步骤和工作原理介绍

这是 Jerry 2021 年的第 63 篇文章,也是汪子熙公众号总共第 340 篇原创文章。 蜀相 杜甫 丞相祠堂何处寻,

javascript-使用sinon和konacha测试ember.js中的动作

我的应用程式中有一条简单的路线,例如: Dash.PostsNewRoute = Em.Route.extend({ model: function() { return this.store.createRecord('post'); }, actions: { saveForm: function() { this.modelFor('postsNew').save(); } } }); 这是我为测试sa

javascript-恢复沙箱中的单个存根

sandbox = sinon.sandbox.create(); sandbox.stub(db, 'query', () => { return Promise.resolve(); }); sandbox.stub(process, 'exit', () => { }); sandbox.restore();删除所有存根. 我想删除一个存根,以便重新启动它.例如查询存根. 这可能吗?我找不到有关此的任何信息.

javascript-Sinonjs如何存根依赖注入类?

我在下面编写了示例代码(从我的实际代码实现中进行了简化),此简化版本的主要思想是理解如何对类进行存根以进行单元测试. 我有将依赖项注入到Context类中的Sensor类,此Sensor将从某个IO端口获取数据. 传感器数据将在ComputeSensor类中进行比较以获取期望值,并将报告键插入context.r

javascript-无法从sinon.js fakeServer中触发对$.ajax的调用

我有以下茉莉花规格: describe "plugins", -> beforeEach -> @server = sinon.fakeServer.create() afterEach -> @server.restore() describe "reviewStatus", -> it "should attach dates to content", ->

javascript-如何模拟或伪造网站行为以允许对某些JS函数进行单元测试

情况: 我刚刚开始学习对JavaScript代码进行单元测试,我想知道是否有一种方法可以伪造应用程序的行为以测试某些情况.我读过有关sinon.js spy / stub / mock的文章.但是,与JS一样,还有很多其他脚本和组合(例如,与摩卡,柴,业力茉莉花),我希望有人能告诉我最佳实践. 让我们举个例子:如果

javascript-使用sinon.js通过基于真实构造函数/原型的间谍方法创建“间谍对象”

我正在使用sinon.js作为在我的Mocha测试中消除依赖项的方法.我喜欢“间谍”方法而不是经典的模拟方法,因为与经典的模拟对象相比,间谍的内省似乎更清晰,并且具有更大的灵活性. 就是说,我想知道在为整个对象创建测试间谍程序时是否使用不正确.假设我有一个测试依赖项,上面有4个方法,

javascript – 用Sinon保存Mongoose模型的实例方法

我正在尝试使用Mongoose模型测试我用来保存小部件的服务功能.我想在我的模型上存根保存实例方法,但我无法找到一个好的解决方案.我看到了其他建议,但似乎都没有完整. 见…… this和this. 这是我的模特…… // widget.js var mongoose = require('mongoose'); var widgetSchema =

javascript – 在Jest中存储窗口函数

在我的代码中,我在“OK”点击window.confirm提示时触发回调,我想测试是否触发了回调. 在sinon中,我可以通过以下方式存根window.confirm功能: const confirmStub = sinon.stub(window, 'confirm'); confirmStub.returns(true); 有没有办法在Jest中实现这种存根?解决方法:在开玩笑中

javascript – 使用sinon间谍验证函数调用和检查参数

我想验证我的单元测试中foo()内部调用了bar(). 我认为Sinon spies可能是合适的,但我不知道如何使用它们. 有没有办法检查方法是否被调用?也许甚至提取bar()调用中使用的参数? var spy = sinon.spy(foo); function foo(){ bar(1,2,3); } function bar(){ } foo(); // what to

javascript – 测试一个函数使用Sinon.js调用ES6模块中的另一个函数

我想测试ES6模块中的函数使用Sinon.js调用另一个函数.这是我正在做的基本布局: foo.js export function bar() { baz(); } export function baz() { ... } test.js import sinon from 'sinon'; import * as Foo from '.../foo'; describe('bar', function() { it(�

javascript – 测试一个函数使用Sinon.js调用ES6模块中的另一个函数

我想测试ES6模块中的函数使用Sinon.js调用另一个函数.这是我正在做的基本布局: foo.js export function bar() { baz(); } export function baz() { ... } test.js import sinon from 'sinon'; import * as Foo from '.../foo'; describe('bar', function() { it(�

javascript – 用Sinon.js绑定一个类方法

我试图使用sinon.js存根方法但我收到以下错误: 未捕获的TypeError:尝试将未定义的属性sample_pressure包装为函数 我也去了这个问题(Stubbing and/or mocking a class in sinon.js?)并复制并粘贴了代码,但我得到了同样的错误. 这是我的代码: Sensor = (function() { // A simple Se

javascript – 使用SinonJS存根(带重新连接)

我有一个功能: var publish = function(a, b, c) { main = a + getWriterName(b,c); } 和getWriterName是另一个函数: var getWriterName = function(b,c) { return 'Hello World'; } 我想测试“发布”功能,但我不想在测试“发布”时运行“getWriterName”函数.我觉得我

javascript – 如何使用间谍模块导出实用程序功能

在javascript(ES6)中,我有一个实用程序模块,它只包含一些函数,然后在文件的最后,我这样导出它们: module.exports = { someFunction1, someFunction2, someFunction3, } 然后我想为这些函数编写单元测试.一些功能相互依赖;他们以某种方式相互调用,例如,someFunction1可能会

javascript – res.status在尝试设置状态代码时不是一个函数

当试图满足由提供的单元测试设置的规范时,在尝试返回我遇到的方法的状态代码时 TypeError: res.status is not a function 在API实现中运行createUser函数时.它发生在每个方法调用中,例如res.send,res.sendStatus等.即使我将res.status()添加到测试以将其设置在那里,它也会返回

javascript – Sinon假服务器不自动响应

嗨我正在使用fetch测试一个集合,当我调用它时,只有在调用server.response之后才能从假服务器中得到答案.我得到了所需的结果. 这是为什么 ? 我的代码 beforeEach( function() { server = sinon.fakeServer.create(); server.autoRespond = true; colhedoraList = new

javascript – 如何使用sinon.js模拟/存根回调函数?

我想用QUnit和Sinon.Js编写单元测试.我有一个应用程序,用户可以点击按钮和模式对话框来处理下载一些文件.用户可以关闭对话框,它会触发一个方法来运行以重置某些变量.我的测试代码: $(function() { $.fn.copy_button = function(){}; ln_download_view = new DownloadModa

javascript – 使用Sinon存取get方法

我正在尝试使用属性存根对象的get方法, 工作良好: sinon.stub(input.model, 'get'); input.model.get.returns(10); 但考虑一下我们是否需要在对象中存根某些特定属性, 例如: input.model.get('yourValue') ↪这怎么可以被打断?任何的想法?解决方法:stub.withArgs()应该做你想要的

javascript – 如何监视jQuery的追加函数Sinon

我正在尝试使用sinon.js在jQuery.append函数上创建一个间谍. 我试过:var spy = sinon.spy($,“append”);并得到以下错误:TypeError:尝试将undefined属性包装为函数. 然后我修改为:var spy = sinon.spy($.fn,“append”);这似乎更好,但spy.called是错误的.解决方法:Sinon.spy(object, "

javascript – Mocha Sinon监视导入的函数

如何在不将导入的所有功能包含到对象中的情况下监视导入的函数? 以下是我想测试的片段: import {create} from '../../server/session/sessionFactory'; ... create = sinon.spy(create); // doesn't work, create is read-only! ... expect(createSpy.calledOnce).to.equal(true);

Javascript单元同步测试Promise.all

我有一个node.js应用程序,其中我有一个维护状态的对象和一个每30秒更新一次这种状态的更新循环.基本上它是一个构建监视器,它在向前端提供每个管道的最新状态时查询构建机器. 在更新循环中,我需要进行多次调用,为此我需要所有数据来从中进行任何有用的操作.目前我将所有这些调用包

javascript – 对需要时返回函数的库进行存根/模拟

所以我试图模拟或存根调用growl库.必要时,它返回一个函数,该函数将在调用时触发growl通知.我无法弄清楚如何在我的测试中模拟或存根. 这是我到目前为止所尝试的: /* /lib/some_code.js */ var growl = require('growl'); exports.some_func = function() { growl('A message', {

javascript – 如何将从外部作用域调用的方法存根到被测函数?

我有一个使用node_redis库创建的Redis客户端(https://github.com/NodeRedis/node_redis): var client = require('redis').createClient(6379, 'localhost'); 我有一个我想测试的方法,其目的是设置和发布Redis的值,所以我想测试以确保根据我的期望调用或不调用set和publish方法.棘

javascript – 如何模拟异步函数的返回值?

我正在尝试测试使用’easy-soap-request’库的函数. 我想模拟’soapRequest’函数返回的结果. 我已经尝试了this,但它没有用,我一直从外部API获取数据. client.js const soapRequest = require('easy-soap-request'); async function get_data(){ var response = await soapR