我的测试目标中有当前导入:importsharpfrom'sharp'并在我的同一个测试目标中使用它:returnsharp(local_read_file).raw().toBuffer().then(outputBuffer=>{在我的测试中,我正在执行以下操作来模拟sharp函数:jest.mock('sharp',()=>{raw:jest.fn()toBuffer:jest.fn()then:jest.fn()})但我得到:return(0,_sharp2.default)(local_read_file).^TypeError:(0,_sharp2.default)isno
我正在测试一个有条件地呈现包装组件的组件。我正在使用enzyme和jest,根组件是通过shallow()方法呈现的。问题是测试Root组件是否包含包装组件。如何在不使用mount()渲染方法的情况下测试包装组件是否存在?hoc.component.jsxexportfunctionHOC(Component){render(){return}}wrapped.component.jsxclassWrappedComponentextendsReact.Component{...}exportdefaultHOC(WrappedComponent)root.component.jsxc
所以我一直在编写一个成功的单元测试库,而且一切看起来都很顺利。然后我在一些在线示例中注意到我这样做的地方:-jest.unmock('../lib/q');其他人这样做:-jest.dontMock('../lib/q');我在Jest网站上找不到任何文档(老实说,文档不是很好),所以我将我的一个套件更改为dontMock并爆炸了很多...有什么区别? 最佳答案 这是coveredintheJestdocumentation.似乎我们现在都应该使用unmock来防止将mock提升到ES6导入之上:I'musingbabelandmy
我需要使用babel-plugin-transform-decorators-legacy和React-Native来启用@decorators。如何配置React-Native/Babel来实现这一目标?这与我之前关于如何让@decorators在React-Native中工作的问题有关:https://stackoverflow.com/a/34271636/941058 最佳答案 使用官方Babel预设安装官方BabelpresetsforReactNativeapplications:npmibabel-preset-rea
假设我有一个类如下:classSomeClass{constructor(a,b){this.a=a;this.b=b;}}我如何通过Jest测试构造函数是否以正确的方式初始化?说...this.a=a和this.b=b而不是相反?我知道我可以执行toBeCalledWith但这不会让我检查构造函数的逻辑。我也在考虑制作mockImplementation但在这种情况下它似乎毫无意义,因为我将重写逻辑,或者我可能没有意识到创建模拟的所有细微差别 最佳答案 只需创建一个对象的实例并直接检查它。由于它将它们设置在this上,因此它们本质
我查看了各种解决类属性测试问题的建议,但都没有成功,我想知道是否有人可以更清楚地说明我可能出错的地方,这是我尝试过的所有测试错误预期的模拟函数已被调用,但它没有被调用。搜索.jsximportReact,{Component}from'react'import{func}from'prop-types'importInputfrom'./Input'importButtonfrom'./Button'classSearchFormextendsComponent{staticpropTypes={toggleAlert:func.isRequired}constructor(){sup
在测试文件中,我需要渲染一个组件,同时模拟它的一些子组件。文件结构大致如下所示。文件1import{A,B}from'a-module';exportfunctionMyComponent(){return(//Ineedtomock//thesecomponentsout);}文件2import{MyComponent}from'File1';/**InthisfileIwouldliketorenderMyComponentbut*havecomponentsAandBbereplacedbymocks*/我试过jest.mock('a-module',()=>'Blah');但这
我上周开始了一个项目。在回到我的团队之前,我想评论一下我的代码。/*JustfortheSyntaxoutlook*/classFooextendsReact.Components{constructor(props){super(props);}render(){return(/*cannotcommit!!!!**Followingwillthrowerrorwhenbundledwithwebpack*///Thisthrowserroraswell.)}}代码可能看起来像评论一样有效,但当前JSbin的设置未在ES6上设置。当您使用jsx通过webpack运行bundle时,它
我正在使用babel-standalone并且我正在做与https://github.com/Daniel15/babel-standalone/blob/master/examples/scriptTag-src.htm完全相同的事情,但我收到警告Youareusingthein-browserBabeltransformer.Besuretoprecompileyourscriptsforproduction-https://babeljs.io/docs/setup/我不知道该怎么办。它不应该只是将我所有的ES6代码翻译成旧浏览器支持的代码吗? 最佳答
我想测试一个简单的组件是否呈现(因为我还在研究Jest)。应用程序本身使用webpack加载图像以显示Logo。当我尝试挂载/渲染/浅化无状态组件时,Jest抛出错误。FAILsrc/components/blog/blogList.spec.jsx●Testsuitefailedtorun/home/requinard/Projects/manus-frontend/src/img/manus_logo.png:Unexpectedcharacter'�'(1:0)>1|�PNG|^2|3|4|IHDR��G}pHYs.#.#x�?vtEXtSoftwareAdobeImageRea