草庐IT

javascript - 在 Jestjs 中替代 spyOn().and.callfake

我以前在jasmine中有spyOn().and.callFake,它对我的​​测试有很大帮助,现在我正在使用Jest,我在文档中发现jest.spyOn()存在但没有callFake。我的问题:如何监视方法并使用Jest和expect调用Fake? 最佳答案 jest.spyOnofficialdocumentation给出了很好的答案:Note:Bydefault,jest.spyOnalsocallsthespiedmethod.Thisisdifferentbehaviorfrommostothertestlibraries

javascript - Jasmine spyOn mongoose 保存

我想模拟Mongoose模型的save()函数。我要测试的函数在名为user.js的文件中如下所示:varUser=import('User.js')post:function(req,res){varuser=newUser({password:req.body.password,email:req.body.email,});user.save(function(err){if(err){....}else{....}});我试图在另一个名为user_spec.js的文件中编写如下所示的测试:varHander=require('user.js')it('worksproperly

javascript - SpyOn 一个 mock 的 Jest 模块没有正确监视

我有一个简单的服务,我需要使用jest进行单元测试:代码的关键是:domtoimage.toBlob(node,{filter:filter}).then(function(blob){FileSaver.saveAs(blob,fileName);});我已经这样编写了我的单元测试模块:importFileSaverfrom"file-saver";importdomtoimagefrom"dom-to-image";jest.mock('dom-to-image',()=>{return{toBlob:(arg)=>{letpromise=newPromise((resolve,r

javascript - 具有多个返回值的 Jasmine spyOn

我想用Jasmine测试我的Angular应用程序。所以我创建了一些测试,其中大部分都运行良好。但是,我的功能之一要求用户填写提示。测试无法填充此提示,所以我用spyOn(window,'prompt').and.returnValue('test')模拟了它们。这有效,但只有一次。当我添加两个组件(提示所在的函数)时,我想spyOn第一个提示结果为“test”,第二个提示结果为“test2”。我试过这样做:it'shouldplacethecomponentaslastobjectintheform',->spyOn(window,'prompt').and.returnValue(

javascript - SpyOn 单独导出 ES6 函数

tl;dr:我使用Jasmine;我想测试调用bbb的aaa函数模块;我想监视bbb,但最终aaa调用了原始的bbb函数,不是spy;如何强制aaa调用spy程序?模块:exportfunctionaaa(){returnbbb();}exportfunctionbbb(){return222;}测试:import*asutilfrom'my-module';describe('aaatest',()=>{letbbbSpy:Spy;beforeEach(()=>{bbbSpy=spyOn(util,'bbb');});it('shouldreturnSPYED',()=>{bbbSp

javascript - spyOn 找不到要监视 start() 的对象

我正在使用angular-cli测试框架。在我的组件中,我使用了“ng2-slim-loading-bar”节点模块。submit(){this._slimLoadingBarService.start(()=>{});//methodoperations}现在,当我测试这个组件时,我已经将spyOn这个服务应用为:beforeEach(()=>{letslimLoadingBarService=newSlimLoadingBarService();demoComponent=newDemoComponent(slimLoadingBarService);TestBed.configu

javascript - QUnit 中有 spyOn 类似物吗?

我正在为Jasmine和QUnit编写不同测试用例的规范以比较它们,在我需要编写测试以检查事件是否绑定(bind)到元素之前它们看起来是一样的。事件绑定(bind)看起来像$('.page').live('click',function(){page_clicked($(this))});page_clicked是私有(private)方法,但它调用了另一个模块的公共(public)方法。这是Jasmine规范:it('shouldbindeventstopages',function(){spyOn(search,'get_results');$('.page:eq(0)').tri

javascript - 如何解决TypeError : spyOn andReturn is not a function?

我正在尝试为服务运行jasmine单元测试。我模拟了$location但出现错误:app.factory('testService',function($location){return{config:function(){varhost=$location.absUrl();varresult='';if(host.indexOf('localhost')>=0){return'localhost'}if(host.indexOf('myserver')>=0){return'myserver'}}};});我的测试是这样的:describe('testingservice',fun

javascript - 为什么我必须在 beforeEach() 中调用 spyOn?

我有一个简单的测试套件,其中有一个it函数。我想看看我正在调用的函数中是否调用了某个函数,所以我有这样的东西:describe("doStuff",function(){varfoo=newFoo();spyOn(foo,"doOtherStuff");foo.doStuff(true);it("shoulddostuffandotherstuff",function(){expect(foo.stuffDone).toBe(true);expect(foo.doOtherStuff).toHaveBeenCalled();});});但是,这给了我错误:Expectedaspy,bu

javascript - Jest spyOn 函数调用

我正在尝试为一个简单的React组件编写一个简单的测试,并且我想使用Jest来确认在我使用enzyme模拟点击时调用了一个函数。根据Jest文档,我应该能够使用spyOn来执行此操作:spyOn.但是,当我尝试这样做时,我不断收到TypeError:Cannotreadproperty'_isMockFunction'ofundefined这意味着我的spy未定义。我的代码如下所示:importReact,{Component}from'react';importlogofrom'./logo.svg';import'./App.css';classAppextendsComponen
12