草庐IT

react单元测试

全部标签

javascript - React - 使用深度相等性来避免在对象标识更改时重新渲染

React讨论thispageaboutperformance您可以使用浅层相等并避免改变对象,这样组件只需要检查引用以查看props或状态是否发生了变化。我实际上想知道相反的情况:是否可以让相等性检查使用深度相等性并在对象引用更改时忽略(只要它们的内容不变)?原因是,我有一个库返回一些内部变量的克隆版本,要查看这些变量的更新,我需要重新请求该内部变量,从而获得一个全新的克隆。因此,我将通过引用获得完全不同的对象,但它们可能没有更改任何字段。但是每次我请求这样的更新时,React都认为一切都变了,因为所有的引用都变了,并且它重新渲染了很多不必要的东西。当前的解决方案:只要对象的字段不改

javascript - 组件重新渲染时 React SVG 消失

我正在用我的组件中的一些SVG图标制作一个React应用程序。例如,我有一个SearchBar组件,其中包含输入元素以及一个带有搜索图标的按钮。我通过从单个sprite文件相应地设置xlinkHref属性,为我的所有SVG图标使用内联SVG。一切似乎都运行良好,除了我的SVG图标在我点击它们时随机消失。包含图标的按钮元素不会消失,只是SVG图标。我检查了devtools上的DOM树,似乎名为“#shadow-root”的节点存在问题。当我的SVG图标可见时,它们被放置为“#shadow-root”的子节点。然而,当它们消失时,DOM树显示“#shadow-root”节点不再有任何子节点

javascript - 如何将样式应用于带有样式组件的 react-burger-menu 按钮?

我想在React应用程序中使用styled-components创建一个菜单组件,该组件在同一文件中包含样式,从而使其非常模块化。我正在使用react-burger-menu作为菜单。如果我将BurgerMenu包裹在样式化的div中,一切正常(从react-burger-menuREADME.md复制的样式):importReactfrom'react';import{slideasBurgerMenu}from'react-burger-menu';importstyledfrom'styled-components';constStyledBurgerMenu=styled.di

javascript - 有什么方法可以测试移动浏览器是否支持使用网络技术的 Flash?

我知道大多数移动浏览器不支持javascript,我该如何检查? 最佳答案 如果它没有帮助,请不要反对我;)但这似乎是相关的:http://kb2.adobe.com/cps/140/tn_14086.html来自网站(编辑和删节):ThisapproachtoFlashPlayerdetectionreliesontwokeyelements;aFlashplug-in"sniffer"thatusestheGetURLactionwhichonlytheFlash4Playerwillrespondto,andanHTMLpag

javascript - 从 XUL 运行 JavaScript 代码的单元测试 - 内容和方式

我正在编写XUL应用程序。它不是Firefox扩展,而是通过XULrunner使用的独立应用程序。我的意图是在我的开发过程中采用TDD,我正在查看RhinoUnit作为我的单元测试框架。无论如何我都会尝试使用它,但是没有太多关于测试XUL应用程序的文档。有人谈论使用UxU-但仅适用于Firefox插件-和Mochitest-如果您只想测试Mozilla。我的问题是:是否有人编写了带有单元测试的XUL应用程序?您使用了什么工具,如果是我提到的某个人,您是如何使用它的? 最佳答案 你可以试试看Mozmill.它是一个插件,可用于测试所有

javascript - 使用 mongoose 在 node.js 上进行单元测试的结构

几个月来我一直在使用node.js进行开发,但现在我开始了一个新项目,我想知道如何构建应用程序。当谈到单元测试时,我的问题就来了。我将使用nodeunit编写单元测试。我还使用express来定义我的REST路由。我正在考虑在两个“单独的”文件中编写访问数据库的代码(显然,它们会更多,但我只是想简化代码)。会有路由代码。varmongoose=require('mongoose'),itemsService=require('./../../lib/services/items-service');//GET'/items'exports.list=function(req,res){

javascript - Grunt 和 hood.ie 测试数据库

我目前正在AngularJS上运行我的测试套件使用Grunt,Karma,Jasmine和Protractor.我使用的数据库库是hood.ie,这是一个位于CouchDB之上的库.我在我的Gruntfile中使用以下代码启动hood.ie:hoodie:{start:{options:{callback:function(config){grunt.config.set('connect.proxies.0.port',config.stack.couch.port);}}}},但是,我想要一个单独的数据库来运行测试,之后会自动重置。这样,生产数据就不会与测试冲突。我应该如何处理这个

javascript - 使用 QUnit(或其他单元测试工具)测试 Maps/Sets

我们如何断言ES6Maps和Sets的相等性?例如://ES6Mapvarm1=newMap();m1.set('one',1);varm2=newMap();m2.set('two',2);assert.deepEqual(m1,m2);//outputs:passed.//ES6Setvars1=newSet();s1.add(1);vars2=newSet();s2.add(2);assert.deepEqual(s1,s2);//outputs:passed.目的是断言Sets/Maps的元素是相等的。这两个断言都应该失败。是否有deepEqual的等价物?对于集合/map?换

javascript - Material Design Lite + React - 工具提示问题

最近,我一直在整合MaterialDesignLite进入我的ReactWeb应用程序。在大多数情况下,一切都进行得很好,但目前我在React的事件处理方面遇到了一些问题,这似乎不适用于某些MDL组件。特别是,我有一个带有onClick处理程序的DOM元素,它工作得很好,直到添加了MDL工具提示,这导致onClick不再触发.我已经尝试了几乎所有可能的变体(将工具提示放在DOM中的其他位置,将onClick处理程序附加到容器div中,该容器div具有子工具提示,等等),我可以'似乎无法正常工作。这是一个演示该问题的JSBin(我还包括一个示例,该示例使用jQuery在组件安装后将点击处

javascript - React-Three-Renderer 引用在 componentDidUpdate 中不是当前的(包括 MVCE)

我正在使用react-three-renderer(npm,github)来构建带有three.js的场景.我遇到了一个归结为MVCE的问题。引用没有按我期望的顺序更新。首先,这里是要查看的主要代码:varReact=require('react');varReact3=require('react-three-renderer');varTHREE=require('three');varReactDOM=require('react-dom');classSimpleextendsReact.Component{constructor(props,context){super(pr