草庐IT

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

javascript - 用 promises 开 Jest 假计时器

在使用假计时器和promise的组合时,我在让Jest测试框架(版本23.2.0)正常工作时遇到了一些麻烦。我哪里错了?假设我有以下模块://timing.jsexportconsttimeout=ms=>newPromise(resolve=>{setTimeout(resolve,ms)})我的测试文件如下所示://timing.test.jsimport{timeout}from'./timing'describe('timeout()',()=>{beforeEach(()=>{jest.useFakeTimers()})it('resolvesinagivenamountof

javascript - 如何使用 Jest 测试对象的一部分?

我想测试时间是否被正确解析,我只对检查部分属性而不是整个对象感兴趣。在这种情况下,小时和分钟。我尝试使用expect(object).toContain(value)但正如您在下面的代码片段中看到的那样,它失败了,尽管该对象包含我感兴趣的属性并且它们具有正确的值。●Calendar>CalendarViewConfig›itshouldparsetimeexpect(object).toContain(value)Expectedobject:{"display":"12:54","full":774,"hour":12,"hours":12,"minutes":54,"string"