草庐IT

javascript - 为什么我的 jest.mock 中的 Promise reject() 会转到 then() 而不是 catch()?

我有两个文件,getItemInfo.js进行API调用,getItemInfo.test.js是相应的Jest测试文件。在测试文件中,我正在模拟由Node模块request-promise触发的http调用。问题在第二个代码块上,被*********包围。基本上为什么reject()错误仍然会在第二个单元测试中进入then()block?//getItemInfo.jsconstrp=require('request-promise');constgetItemInfo=(id)=>{constroot='https://jsonplaceholder.typicode.com/po

javascript - 如何用 Jest 模拟第三方模块

我的测试目标中有当前导入: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

javascript - Jest Enzyme 如何对包装组件的存在进行浅层测试

我正在测试一个有条件地呈现包装组件的组件。我正在使用enzyme和jest,根组件是通过shallow()方法呈现的。问题是测试Root组件是否包含包装组件。如何在不使用mount()渲染方法的情况下测试包装组件是否存在?hoc.component.jsxexportfunctionHOC(Component){render(){return}}wrapped.component.jsxclassWrappedComponentextendsReact.Component{...}exportdefaultHOC(WrappedComponent)root.component.jsxc

javascript - Jest 中 unmock 和 dontMock 的区别

所以我一直在编写一个成功的单元测试库,而且一切看起来都很顺利。然后我在一些在线示例中注意到我这样做的地方:-jest.unmock('../lib/q');其他人这样做:-jest.dontMock('../lib/q');我在Jest网站上找不到任何文档(老实说,文档不是很好),所以我将我的一个套件更改为dontMock并爆炸了很多...有什么区别? 最佳答案 这是coveredintheJestdocumentation.似乎我们现在都应该使用unmock来防止将mock提升到ES6导入之上:I'musingbabelandmy

javascript - 如何在 Jest 中测试类构造函数

假设我有一个类如下:classSomeClass{constructor(a,b){this.a=a;this.b=b;}}我如何通过Jest测试构造函数是否以正确的方式初始化?说...this.a=a和this.b=b而不是相反?我知道我可以执行toBeCalledWith但这不会让我检查构造函数的逻辑。我也在考虑制作mockImplementation但在这种情况下它似乎毫无意义,因为我将重写逻辑,或者我可能没有意识到创建模拟的所有细微差别 最佳答案 只需创建一个对象的实例并直接检查它。由于它将它们设置在this上,因此它们本质

javascript - Jest 预期模拟函数已被调用,但未被调用

我查看了各种解决类属性测试问题的建议,但都没有成功,我想知道是否有人可以更清楚地说明我可能出错的地方,这是我尝试过的所有测试错误预期的模拟函数已被调用,但它没有被调用。搜索.jsximportReact,{Component}from'react'import{func}from'prop-types'importInputfrom'./Input'importButtonfrom'./Button'classSearchFormextendsComponent{staticpropTypes={toggleAlert:func.isRequired}constructor(){sup

javascript - 使用 Jest 和 React 模拟非默认函数

在测试文件中,我需要渲染一个组件,同时模拟它的一些子组件。文件结构大致如下所示。文件1import{A,B}from'a-module';exportfunctionMyComponent(){return(//Ineedtomock//thesecomponentsout);}文件2import{MyComponent}from'File1';/**InthisfileIwouldliketorenderMyComponentbut*havecomponentsAandBbereplacedbymocks*/我试过jest.mock('a-module',()=>'Blah');但这

javascript - 使用 Jest 测试时使用 webpack 导入图像时 enzyme 渲染失败

我想测试一个简单的组件是否呈现(因为我还在研究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

javascript - 尝试使用@别名时,Jest 找不到@babel/code-frame

我们的应用程序使用importES2015风格语法导入文件,利用Webpack4.6.0对ES2015模块的原生支持。我们还使用别名来缩短我们的相对文件路径。Webpack.conf.jsresolve:{extensions:['.js','.json','.less'],alias:{'@':resolve('public/js'),'handlebars':'handlebars/dist/handlebars.js',},modules:['less','node_modules']},example.jsimportwidgetfrom'@/widgets/widget';文

javascript - 如何使用 Jest 将 Axios 模拟为默认导出

如何模拟导出为默认函数的axios?我有一个api帮助程序,它使用axios()概括api请求api.jsexportconstcallApi=(endpoint,method,data={})=>{returnaxios({url:endpoint,method,data}).then((response)=>//handleresponse).catch((error)=>//handleerror)};api.spec.jsimportaxiosfrom'axios';import{callApi}from'./api';describe('callApi()',()=>{it(