草庐IT

javascript - 我如何测试一个 Jest console.log

我正在使用create-react-app并尝试编写一个jest测试来检查console.log的输出。我要测试的功能是:exportconstlog=logMsg=>console.log(logMsg);我的测试是:it('console.logthetext"hello"',()=>{console.log=jest.fn('hello');expect(logMsg).toBe('hello');});这是我的错误FAILsrc/utils/general.test.js●console.logthetexthelloexpect(received).toBe(expected

javascript - 引用错误 : You are trying to `import` a file after the Jest environment has been torn down

我有一个组件使用来自ReactNative的Animated组件。我开始编写一个测试用例来模拟组件的onPress,它调用一个函数,其中包含Animated.timing和setState。运行jest工作正常,但测试永远不会停止运行,而且我之前编写的一个不相关的测试用例现在似乎从未通过(之前通过)。运行jest--watch,我得到这个错误:ReferenceError:Youaretryingto`import`afileaftertheJestenvironmenthasbeentorndown.atFunction.bezier(node_modules/react-nativ

javascript - 使用 jest 时如何设置 jsdom

我正在尝试从AVA迁移到Jest。在AVA中可以设置ava.setup,在其中设置jsdom环境。例如,创建DOM结构并执行必要的polyfill(localStorage)。我如何在Jest中完成它?目前,我在每个测试套件中都使用beforeEach,感觉这不是最佳解决方案。提前致谢! 最佳答案 好问题。Jest实际上附带了jsdom并且环境已经配置好了。您可以使用testEnvironment覆盖它setting.如果您需要设置环境的更多方面,您可以使用setupTestFrameworkScriptFilesetting指向在

javascript - 为 React-Native 应用开 Jest 测试 Animated.View

我尝试使用JestforReact-Native测试Animated.View。当我将属性visible设置为true时,它​​应该将我的View从opacity0动画化为opacity1。这是我的组件呈现的内容:{message}opacityValue在propsvisible改变时更新:Animated.timing(this.opacityValue,{toValue:this.props.visible?1:0,duration:350,},).start(),当我设置属性visible=true时,我想确保我的View可见。尽管View变得可见需要一些时间,并且随着测试的运

javascript - 使用 Jest 和 React JS TestUtils 测试表单

我有一个带有3个单选按钮的表单,如下所示(假名):而且我很难尝试测试onChange和onSubmit事件。inputs=TestUtils.scryRenderedDOMComponentsWithClass(MyComponentRendered,'myRadio');myForm=TestUtils.findRenderedDOMComponentWithClass(MyComponentRendered,'myForm');我有这样的测试:it("changesthecheckedstatewhenclicked",function(){MyComponent.change=j

javascript - 开 Jest transformIgnorePatterns 不起作用

我花了很长时间查看关于此的其他问题并查看Github上的其他项目,但似乎没有一个答案对我有用。我正在我的项目中加载第三方库,在运行Jest测试时出现错误exportdefaultportalCommunication;^^^^^^SyntaxError:Unexpectedtokenexport>1|importportalCommunicationfrom'mathletics-portal-communication-service';我已尝试通过多种方式更新我的Jest配置以使其能够转译该库,但我总是遇到同样的错误。这是我当前的jest.config.js文件:module.ex

javascript - 有没有办法用 Jest 按顺序运行一些测试?

Jest默认情况下并行运行您的测试套件,但有一个标志(--runInBand)允许您按顺序运行整个套件(如指出的here)我有一些无法并行运行的测试,但按顺序运行整个套件总共需要更长的时间,所以我的问题是是否有办法只运行一些测试(例如为这些测试或类似的东西设置一个标志)。 最佳答案 我也需要同样的功能。我有一大套要运行的Jest集成测试套件。但是,由于需要设置和拆卸共享资源,有些无法并行运行。所以,这是我想出的解决方案。我更新了我的package.json脚本:{..."scripts":{..."test":"npmruntest

javascript - 如何使用 Jest 为带有 Promise 的代码编写单元测试

我正在尝试使用Jest和Jasmine-pit为以下代码编写单元测试,但我完全被它难住了。该代码是一个ajax调用,它从资源中检索一些数据并将其保存在变量中。init=function(){vardeferred=Q.defer();$.ajax({type:'GET',datatype:'json',url:window.location.origin+name,success:function(data){userId=data.userId;apiKey=data.apiKey;deferred.resolve();}});returndeferred.promise;},

javascript - 在 Jest 中测试 Promises 的最佳方式

除非我误解了什么,解决和拒绝(https://facebook.github.io/jest/docs/expect.html#resolves)将在vNext之前可用。现在/同时使用Jest测试promise的推荐方法是什么?是否只是将期望放在thens和catches中?例如:describe('Fetching',()=>{constfilters={startDate:'2015-09-01'};constapi=newTestApiTransport();it('shouldrejectifnostartdateisgiven',()=>{MyService.fetch().

javascript - Jest 在第一次失败后停止测试套件

我正在使用Jest用于测试。我想要的是在当前测试套件中的测试失败时停止执行该测试套件。--bailoption这不是我需要的,因为它会在一个测试套件失败后停止其他测试套件。 最佳答案 感谢thiscommentongithub我能够使用自定义testEnvironment解决此问题。为此,jest-circus需要通过npm/yarn安装。值得注意的是jestwillsetjest-circustothedefaultrunnerwithjestv27.首先需要调整jest配置:jest.config.jsmodule.export