尽管尝试了一切,但这个让我完全难住了。我正在使用Jest/Enzyme测试React组件。此测试模拟修改元素,然后调用onChange方法。当我运行测试时,我从Jest得到这个:CannotspytheonChangepropertybecauseitisnotafunction;undefinedgiveninstead为什么??以下是组件的关键部分:importReact,{Component}from'react';importEntitiesPulldownfrom'./entities-pulldown'classNewTransactionFormextendsCompon
我正在尝试浅渲染组件以执行一些基本的单元测试。我正在执行此操作的组件有两个子组件,每个子组件根据父组件渲染多次。当查询浅渲染组件时,子元素也被完全渲染,这意味着子元素的HTML元素也可以访问。我正在使用Karma、Browserify、Jasmine和Enzyme,如果需要,可以发布每个的配置。以前有人见过类似的行为吗? 最佳答案 这是正确的行为。与enzyme的其他渲染方法不同的是,它不调用任何生命周期方法,也不转换为真正的html,但它会渲染它的所有子项和子项的子项等等。 关于jav
我整理了一个非常基本的联系表格,效果很好。但是,我现在需要开始编写我的单元测试,但我遇到了一大堆问题(就像我到目前为止只设法通过了一个快照测试)。因此,首先我尝试测试,如果您没有填写所有必填部分,当您单击提交按钮时,该表单是否应该呈现我的验证消息。我认为我可以通过调用handleSubmit()函数来实现这一点,例如:componentRender.find('Formik').instance().props.handleSubmit(badFormValues,{resetForm});但是,当我运行componentRender.debug()时,我的验证消息没有被呈现。好像没有
我有一个HOC要测试,在浅挂载期间我应该调用一些类方法:it('Shouldnotcalldispatch',()=>{constdispatch=jest.fn()constWrappedComponent=someHoc(DummyComponent)constinstance=shallow(,).instance()asWrappedComponentinstance.someMethod()expect(dispatch).toHaveBeenCalledTimes(0)})测试工作正常但TS编译器抛出错误Cannotfindname'WrappedComponent'.这是
这就是我的Messenger组件的样子。如您所见,有一个主要组件和一个列表组件。主要组件默认导出。有了这个,我的应用程序中的一切都按预期工作。/imports/ui/components/messenger.jsximportReact,{Component}from'react'importPropTypesfrom'prop-types'import{Container,Segment,Loader,Header}from'semantic-ui-react'classMessengerextendsComponent{staticgetpropTypes(){return{dat
我有以下内容:import{shallow}from"enzyme"constwrapper=shallow();如何查看包装器的内容? 最佳答案 您可以使用wrapper.debug()获取表示包装器元素的字符串,如:import{shallow}from"enzyme";constwrapper=shallow();console.log(wrapper.debug()); 关于javascript-如何打印enzyme浅包装的内容,我们在StackOverflow上找到一个类似的问
我有一个使用react-router的简单组件(我知道这是alpha版本):{props.app&&props.app.health&&}建议在中包装的文档在测试时为组件提供上下文。但是,使用Jest/Enzyme我无法shallow()渲染-我必须使用enzyme的mount()或render(),这会导致问题,因为HomeLogin是一个连接的组件-我希望能够测试我的组件是否呈现正确的内容,但不测试其中呈现的组件。我的测试:it('Rendersbaseduponmatchedroute',()=>{letprops={app:{health:true},};constcompon
问题我刚刚开始进行enzyme和react测试。我正在尝试让enzyme与karma和webpack在一个简单的react组件上一起工作。我的问题是包装器上的prop()返回null,我不确定为什么。Greeter.jsimportReactfrom'react';/**Atrivialcomponentweaddedwhiletryingtogetthereacttestingworking**/exportdefaultclassGreeterextendsReact.Component{constructor(props){super(props);this.state={nam
我有一个ImageLoader类组件,我正在尝试测试是否正在调用HTMLImageElement上的onload函数。重要的是要注意ImageLoader按预期工作,我只是无法运行测试。这是我的类组件的示例:exportdefaultclassImageLoaderextendsReact.Component{//OmittedforbrevitysetSrc=()=>{const{src}=this.props;if(src){this.tmpImg=newImage();//this.tmpImg.onloadisnevercalledthis.tmpImg.onload=()=>
我正在尝试使用Enzyme的describeWithDOM()和mount()测试React组件的行为。但是当组件导入jQuery时我得到这个错误:错误:jQuery需要一个带有文档的窗口我知道Enzyme在后台使用jsdom,我一直认为jsdom负责处理窗口和文档。但我似乎找不到如何让它们一起工作。测试代码如下所示:importchai,{expect}from'chai';importSelectfrom'./Select';importReact,{createElement}from'react';import{describeWithDOM,mount}from'enzyme