我是使用React-Jest-Enzyme进行测试的新手,但从我收集的所有相关信息来看,在我看来,大多数测试实际上都在测试如果React库崩溃,而不是我的实际业务逻辑。我举几个例子,如果我错了请指正:快照测试:这个策略有什么问题?据我所知,它的主要目的是捕获对我的代码的任何不需要的更改。它“stringify”我的组件树,并注意到是否添加了任何新的换行符/字符,对吗?所以它主要用于那些我可能不小心按下键盘的情况?或者其他人不小心弄乱了我的代码?Enzyme的mount/shallow和Jest的我看到的大多数解释你如何使用它们的例子都是这样的:constwrapper=mount()e
我在调用enzym的mount函数时遇到问题。它说:EnzymeInternalError:Enzymeexpectsanadaptertobeconfigured,butfoundnone.Toconfigureanadapter,youshouldcall`Enzyme.configure({adapter:newAdapter()})`beforeusinganyofEnzyme'stoplevelAPIs,where`Adapter`istheadaptercorrespondingtothelibrarycurrentlybeingtested.Forexample:impo
所以我的开Jest快照可以正常工作,使用babel6/emotion9在快照中生成css和html但是我需要更新到babel7和emotion10但是我的enzyme快照测试不再有效。代码编译并在更新所需代码后工作正常,只是测试被破坏(迁移文档中没有显示与测试设置更新相关的任何内容)。test('rendersproperly',()=>{//thisworksgeneratingthecorrectcss/htmlsnapshotoutputexpect(renderer.create(test).toJSON()).toMatchSnapshot();//thisdoesnotco
问题我一直在使用Jest和Enzyme使用很棒的StyledComponents为我的React组件构建编写测试图书馆。但是,由于我实现了主题化,所以我的所有测试都失败了。让我举一个例子。这是我的LooksBrowser的代码组件(我删除了所有导入和prop-types以使其更具可读性):constLooksBrowserWrapper=styled.div`position:relative;padding:0056.25%;`;constCurrentSlideWrapper=styled.div`position:absolute;top:0;left:0;z-index:2;`
我编写了一个简单的React组件来呈现:exportclassIframeextendsReact.component{render(){return;}}我试图通过检查加载的内容src来测试它正确填充在中.为此,我尝试访问frame.contentWindow,但在用enzyme安装它之后它总是返回undefined.我试过模拟内容与诗浓FakeXMLHttpRequest:server=sinon.fakeServer.create();server.respondWith('GET','test',[200,{'Content-Type':'text/html'},'Amazin
场景尝试使用Jest(和Enzyme)测试一个简单的React组件。该组件使用react-dropzone,我想测试一些涉及DOM的操作,所以我使用jsdom(已由create-react-app配置)问题document对象虽然在我的测试代码中可用并且在组件内部可用,但在dropzoneonDrop回调中是undefined,这会阻止测试运行。代码MyDropzoneimportReactfrom'react'importDropzonefrom'react-dropzone'constMyDropzone=()=>{constonDrop=(files)=>{fileToBase6
我有一个父组件和一个只是“标签”元素的子组件。当我点击子元素时,我需要调用父组件中的函数。我希望它被调用,但状态没有改变,当我看到覆盖文件时,函数没有被调用。**更新:**该代码适用于开发。只是单元测试失败了。这是我的父组件父类.jsexportdefaultclassParentextendsComponent{constructor(props){super(props)this.state={clickedChild:false}this.handleChildClick=this.handleChildClick.bind(this)}handleChildClick(inde
我有一个简单的应用程序,他们使用react-routerv4constApp=()=>(Home}/>Profile}/>Help}/>);和测试jest.dontMock('../App');importReactfrom'react';import{MemoryRouter}from'react-router-dom';import{shallow}from'enzyme';importAppfrom'../App';describe('',()=>{constwrapper=shallow();console.log(wrapper.html());it('rendersasta
每个人。在componentDidMount中发生异步调用后,我在测试状态更新时遇到了奇怪的问题。这是我的组件代码:'usestrict';importReactfrom'react';importUserComponentfrom'./userComponent';constrequest=require('request');classUsersListComponentextendsReact.Component{constructor(props){super(props);this.state={usersList:[]};}componentDidMount(){reque
我有一个组件使用来自ReactNative的Animated组件。我开始编写一个测试用例来模拟组件的onPress,它调用一个函数,其中包含Animated.timing和setState。运行jest工作正常,但测试永远不会停止运行,而且我之前编写的一个不相关的测试用例现在似乎从未通过(之前通过)。运行jest--watch,我得到这个错误:ReferenceError:Youaretryingto`import`afileaftertheJestenvironmenthasbeentorndown.atFunction.bezier(node_modules/react-nativ