草庐IT

react单元测试

全部标签

javascript - 如何测试一个函数在另一个函数之前被调用

我有一些紧密耦合的遗留代码,我想用测试覆盖它们。有时确保一个模拟出的方法在另一个方法之前被调用很重要。一个简化的例子:functionPageManager(page){this.page=page;}PageManager.prototype.openSettings=function(){this.page.open();this.page.setTitle("Settings");};在测试中,我可以检查是否调用了open()和setTitle():describe("PageManager.openSettings()",function(){beforeEach(functi

javascript - 使用 mocha,我如何运行名​​称中*没有* (slow) 的所有测试?

我有很多测试,其中一些名称中有“(慢)”:其中一些比标记为(慢)的测试慢,但其他测试依赖于它们,因此不能跳过。我只想跳过名称中带有(慢)的那些——这可能吗?我正在使用Mocha。 最佳答案 在我看来,您正在为要在浏览器中加载以运行Mocha的页面执行此操作。要在浏览器中执行此操作,您可以在页面的URL中传递这些参数:grep大致对应于命令行上的--grep选项。这将运行的测试范围缩小到与传递给grep的表达式相匹配的测试。但是,目前(甚至从2.0.1开始)没有办法让Mocha将此参数解释为正则表达式。它总是被解释为一个字符串。这就是

javascript - Mocha 测试 : Uncaught TypeError: Cannot read property 'status' of null

学习TDD和我对“HelloWorld”服务器响应的第一个简单测试在Mocha中失败了。我正在使用Mocha.js、Superagent和Expect.js。当我curl-ilocalhost:8080时,我得到了正确的响应和状态代码。HTTP/1.1200OKContent-Type:text/plainDate:Mon,27Apr201517:55:36GMTConnection:keep-aliveTransfer-Encoding:chunkedHelloWorld测试代码:varrequest=require('superagent');varexpect=require('

javascript - 使用 React 一次突出显示一个对象

我对React和Javascript都很陌生,我已经通过构建一个简单的可折叠菜单开始学习它。它按预期工作,除了我不知道如何一次只突出显示一个项目。我怀疑onClick方法和状态必须由比sectionItem更高级别的类拥有,但我真的很困惑如何使它起作用。我的第一直觉是每次单击某项时都遍历菜单中的所有项目,并确保所有其他项目都切换为active=false。这是正确的思考方式吗?有人可以解释在这种情况下状态在React中是如何工作的,以及我应该如何在这里实现它?完整代码可在此处获得:Menuoncodepen.io这是我想要突出显示的项目的代码。我还不能实现一次只突出显示一个项目。var

javascript - react : How to access refs in this. props.children

我想调用一个子组件的函数。是否有可能在React中从this.props.children获取引用。varComponentSection=React.createClass({componentDidMount:function(){//Howtoaccessrefsinthis.props.children?this.refs.inner.refs.specificPanel.resize();},render:function(){return({this.props.children});}});varPanel=React.createClass({resize:functi

javascript - 使用 react-hot-loader 获取 "Aborted because 0 is not accepted"和整页重新加载

我正在尝试使用react-hot-loader设置webpack热重载。它大部分似乎都在工作。我在现有的Rails应用程序中使用webpack。但这不是热重载。每次更改我的react代码时,它都会触发重新加载。我收到的错误消息是:[HMR]Cannotapplyupdate.Needtodoafullreload!-dev-server.js:18[HMR]Error:Abortedbecause0isnotaccepted-dev-server.js:19athotApply(http://localhost:8080/assets/webpack/bundle.js?body=1:

Javascript 测试 : Selenium cookies data url

只要需要Javascript,我就有一个运行Selenium的Behat测试。如果使用Javascript(因此Selenium被禁用),我当前的Behat测试工作正常。目前,我从Selenium得到的唯一错误反馈是以下语句:unknown:Failedtosetthe'cookie'propertyon'Document':Cookiesaredisabledinside'data:'URLs.(Sessioninfo:chrome=48.0.2564.109)(Driverinfo:chromedriver=2.20.353124(035346203162d32c80f1dce58

javascript - Reacts `propTypes` 和 `defaultProps` 应该和 Flowtype 一起使用,还是 Flowtype 够全面?

想到一个简单的例子比如:classCommentAreaComponentextendsReact.Component{staticpropTypes={id:PropTypes.string.isRequired,loading:PropTypes.bool,};staticdefaultProps={loading:false,};在构造函数中我可以定义这样的东西来实现(我认为)同样的事情:classMyComponentextendsReact.Component{constructor({loading=false,}:{id:string,loading?:boolean})

javascript - React setState 中的竞争条件

问题:一个组件的多个子组件几乎同时触发了事件。这些事件中的每一个都由handleChange风格的函数处理,这些函数使用React的不变性助手将复杂对象合并到控制组件的状态中,通过类似于;this.setState(React.addons.update(this.state,{$merge:new_value_object}));这在事件独立触发时工作正常,但当多个事件以这种方式导致状态更新时,每个事件都单独从状态的旧版本合并。IE。(伪代码,不打算执行)。functionlogState(){console.log(this.state)}logState();//{foo:'',

javascript - react js ,获取 sibling 或父值

我是新手,我很好奇如何正确地做到这一点。假设我有这个表单,通过单击按钮,我想获取文本框值,varform=React.createClass({submit:function(e){//howtogettextboxvalue?},render:function(){return(Getit);}});任何答案将不胜感激!谢谢! 最佳答案 React强制执行父子单向数据流。因此,没有简单的方法来访问sibling的数据。但是,如果child更改整个组件的状态,您可能需要一个状态来跟踪它。示例代码:varFormBox=React.c