草庐IT

javascript - 让 webfontloader 与 node.js 和 jsdom 一起工作

我有webfontloader在浏览器上下文中很好地工作。现在我想看看我是否可以让它在node.js中工作+jsdom上下文,特别是因为webfontloader可用作npmmodule.我已经让node+jsdom工作以提供合理的输出,所以我知道这部分工作正常。但是,当我尝试集成webfontloader以启用网络字体时,我就解脱了。基本上,我使用的是README中记录的webfontloader模块,它是:varWebFont=require('webfontloader');WebFont.load({google:{families:['DroidSans','DroidSer

javascript - Jest/Enzyme 图像加载回调未运行

我有一个ImageLoader类组件,我正在尝试测试是否正在调用HTMLImageElement上的onload函数。重要的是要注意ImageLoader按预期工作,我只是无法运行测试。这是我的类组件的示例:exportdefaultclassImageLoaderextendsReact.Component{//OmittedforbrevitysetSrc=()=>{const{src}=this.props;if(src){this.tmpImg=newImage();//this.tmpImg.onloadisnevercalledthis.tmpImg.onload=()=>

javascript - 为什么 React 需要 jsdom 进行测试?

在为React组件编写测试时,您必须将它们渲染到DOM中,以便断言它们的正确性。例如,如果你想测试某个类是否被添加到给定某个状态的节点,你必须渲染到DOM节点,然后通过普通的DOMAPI检查该DOM节点。问题是,考虑到React维护一个虚拟DOM来渲染它,为什么我们不能在组件渲染后就在虚拟DOM上断言?在我看来,这是拥有虚拟DOM之类的东西的一个很好的理由。我错过了什么吗? 最佳答案 你真的没有错过任何东西。我们正在努力让它变得更好。虚拟部分一直是React的一个非常重要的实现细节,没有以任何有用或可靠的方式暴露出来进行测试。我们的

javascript - Node.js jsdom错误

我正在尝试让jsdom工作:)代码如下:varjsdom=require("jsdom");varrequest=require("request");varfs=require('fs');varjquery=fs.readFileSync("./jquery-1.7.2.js",'utf-8');request({uri:'http://nodejs.org/dist/'},function(error,response,body){if(error&&response.statusCode!==200){console.log('HTTPrequesterror...'+erro

javascript - 使用 JSDOM 模拟上线/下线

我们正在编写有关离线第一个应用程序基础知识的教程,并使用带有Tape的JSDOM来测试我们的代码。在我们的代码中,我们通过将事件监听器附加到窗口并监听“在线”/“离线”事件和来更新DOM,以便文本Node从“在线”变为“离线”,反之亦然navigator.onLine将文本初始化为在线/离线。像这样://gettheonlinestatuselementfromtheDOMvaronlineStatusDom=document.querySelector('.online-status');//navigator.onLinewillbetruewhenonlineandfalsewh

javascript - jsdom:dispatchEvent/addEventListener 似乎不起作用

总结:我正在尝试测试一个React组件,该组件在其componentWillMount中监听nativeDOM事件。我发现jsdom(@8.4.0)在调度事件和添加事件监听器时没有按预期工作。我可以提取的最简单的代码:window.addEventListener('click',()=>{thrownewError("success")})constevent=newEvent('click')document.dispatchEvent(event)thrownewError('failure')这会引发“失败”。上下文:存在上述风险XYproblem,我想提供更多上下文。这是我要

javascript - 使用 Mocha 设置 JSDOM

我正在尝试使用sinon的mock和spy来测试Redux组件和异步操作,但是一旦我将sinon导入任何测试文件,就运行以下npm脚本:mocha--requiretest/helpers/browser.js--compilers.:babel-core/register--optstest/client/**/*.{js,jsx}--recursivetest/client我收到以下错误:vardiv=typeofdocument!=="undefined"&&document.createElement("div");^TypeError:document.createEleme

javascript - 与 jsdom 开 Jest ,文档在 Promise 解析中未定义

场景尝试使用Jest(和Enzyme)测试一个简单的React组件。该组件使用react-dropzone,我想测试一些涉及DOM的操作,所以我使用jsdom(已由create-react-app配置)问题document对象虽然在我的测试代码中可用并且在组件内部可用,但在dropzoneonDrop回调中是undefined,这会阻止测试运行。代码MyDropzoneimportReactfrom'react'importDropzonefrom'react-dropzone'constMyDropzone=()=>{constonDrop=(files)=>{fileToBase6

javascript - 使用 jest 时如何设置 jsdom

我正在尝试从AVA迁移到Jest。在AVA中可以设置ava.setup,在其中设置jsdom环境。例如,创建DOM结构并执行必要的polyfill(localStorage)。我如何在Jest中完成它?目前,我在每个测试套件中都使用beforeEach,感觉这不是最佳解决方案。提前致谢! 最佳答案 好问题。Jest实际上附带了jsdom并且环境已经配置好了。您可以使用testEnvironment覆盖它setting.如果您需要设置环境的更多方面,您可以使用setupTestFrameworkScriptFilesetting指向在

javascript - 模拟点击文档 ReactJS/JSDom

所以我正在为在文档上添加点击事件的代码编写一些测试。我正在使用JSDom、ReactJS和Mocha/Chai设置。我在测试中尝试了以下代码:document.addEventListener('click',function(){console.log('test');});React.addons.TestUtils.Simulate.click(document);//alsotriedReact.addons.TestUtils.Simulate.click(document.body);但是这段代码并没有产生我期望的回声。有没有办法用JSDom和ReactJS在文档上模拟点击