草庐IT

模拟法

全部标签

javascript - Jest - React 组件中的模拟粗箭头功能

鉴于我的组件和下面的测试,为什么我的confirmClickHandler方法在我运行测试时仍然被调用?注意:我注意到,当我将方法从粗箭头函数更改为常规函数时,它会被正确地模拟出来。我在这里缺少什么?classCalendarConfirmationextendsReact.Component{...confirmClickHandler=(e)=>{...}}和我的测试:importReactfrom'react';import{mount}from'enzyme';importCalendarConfirmationfrom'../components/CalendarConfir

javascript - Jest +酵素。无法读取未定义的属性 '_isMockFunction'。模拟箭头的keyDown

我的主要组件的测试方法存在严重问题。经过多次重试后我的实际测试仍然不起作用,看起来像这样:describe(':',()=>{beforeEach(()=>{wrapper=mount();});describe('Interaction:',()=>{it('shouldcallArrowDown()',()=>{constinstance=wrapper.instance();spy=jest.spyOn(instance,'ArrowDown');instance.forceUpdate();wrapper.simulate('keyDown',{key:'Arrowdown'}

javascript - 用javascript模拟F11

如何模拟flash的F11(全屏而不是最大化浏览器窗口):http://www.broculos.net/files/articles/FullscreenFlash/flashFullscreen.html?在闪存中:fscommand("fullscreen",true)permadi.com/tutorial/flash9FullScreen/index.html谢谢更新我发现了这个:vardocElm=document.documentElement;if(docElm.requestFullscreen){docElm.requestFullscreen();}elseif(

javascript - 模拟 jQuery 来测试基本使用

我很难理解如何设置允许我测试jQuery调用的对象。我不需要模拟任何异步调用或任何东西,只需基本使用即可。因此,让我列出我要测试的函数(为简单起见被chop):listGamesCallback:function(data){vargameList=$("#gameListselect");gameList.empty();$.each(data,function(){varnewOption=$('',{value:this.gameId});newOption.text(string);newOption.data("isJoinable",isJoinable);//Additt

javascript - 模拟 node.js 模块

假设我有这种情况(架构)layer1->layer2->layer3层只是普通的node.js模块(有一些导出的函数)Layer1需要layer2并调用他的函数,layer2需要layer3并调用他的函数。我想测试第1层中的函数,但也模拟第3层(我在第1层中的函数调用传播到第3层,我想模拟这个函数)。最好的方法是什么?我看过这个模块:https://github.com/thlorenz/proxyquire但我认为它不支持像我的示例那样深入到2级或更高级别时进行模拟。感谢您的任何建议! 最佳答案 我用过mockery取得了巨大的成

javascript - 以不推荐使用的方式模拟键盘按下?

我正在寻找一种模拟键盘按下的方法(如标题所示)。我环顾四周,主要发现了这两个SO问题:Isitpossibletosimulatekeypresseventsprogrammatically?Simulatekeypresswithoutjquery这些问题是它们都使用KeyboardEvent.initKeyboardEvent()事件,根据MDN它已被弃用。有没有不推荐使用的功能的不同方法来完成同样的事情?我想知道这一点,因为我正在使用Chrome的TamperMonkey扩展程序为YouTube创建一个脚本。此脚本将在按下[space]时触发K。K是YouTube的切换播放/暂停

javascript - 仅在闭包中定义的模拟/ stub 对象

首先,为了测试我的库,我使用了Mocha和Chai,但有时我可能也需要Sinon。这是图书馆:importServicefrom'service';//athird-partymoduleoutofmycontrolconstservice=Service(...);classMyLib{...uses`service`inabunchofdifferentways......service.put(foo)......service.get(bar)...}exportdefaultMyLib;这基本上是测试文件:importMyLibfrom'../my-lib.js';descr

javascript - Chrome 移动模拟器中的 ReactJS 升级导致触摸事件中断

我最近从React0.10升级到了React0.14。最初我收到一个错误,提示React.initializeTouchEvents不是一个函数。我读了一些文档,声称在最新版本的React中不需要这种初始化,所以我取消了它。但是,现在我的项目中没有注册任何触摸事件。我需要做什么才能让它们重新工作?下面我包含了一些我编写的简单测试代码来尝试解决这个问题。目前根本没有注册任何触摸事件。我的主要js文件:/**@jsxReact.DOM*/varReact=require('react');varReactDOM=require('react-dom');varTestButton=requ

javascript - 在 webpack 捆绑库上模拟 fbasyncInit 行为

我正在使用webpack构建一个针对浏览器的库。我真的很想在不手动修改捆绑库的情况下复制fbasyncinit行为。webpack是否提供了在加载库本身后调用函数的方法?或者是否有另一个允许这样做的替代bundler?对于那些不知道的人,window.fbasyncinit是facebooksdk在完成加载时调用的函数,因此您编写函数来初始化facebooksdk的东西。 最佳答案 根据您的设置,您可能希望将您的库设为外部和lazyload它进入目标应用程序。简而言之,这意味着您的库与应用程序一起存在,但实际上不会在初始化时加载。然

javascript - Jasmine - 如何模拟 history.pushState 和假事件发射?

在history.pushState的帮助下,我正在编写一个支持浏览器导航的库并且还捕获了popstateevent在浏览器中进行导航时进行通信。因为我正在尝试写Jasmine测试这个库,我想知道如何模拟history.pushState并且还伪造了popstate的发射来自window的信号?以下代码片段应该可以说明问题:库代码:varlib=(function(){functionnavigate(path){history.pushState(null,null,path);}functiononPopState(event){if(lib.callback){lib.callb