草庐IT

javascript - Jest spyOn 函数调用

我正在尝试为一个简单的React组件编写一个简单的测试,并且我想使用Jest来确认在我使用enzyme模拟点击时调用了一个函数。根据Jest文档,我应该能够使用spyOn来执行此操作:spyOn.但是,当我尝试这样做时,我不断收到TypeError:Cannotreadproperty'_isMockFunction'ofundefined这意味着我的spy未定义。我的代码如下所示:importReact,{Component}from'react';importlogofrom'./logo.svg';import'./App.css';classAppextendsComponen

javascript - 如何在每次测试前重置 Jest 模拟函数调用计数

我是Jest的新手,我正在尝试使用它来测试函数是否被调用。我注意到mock.calls.length并没有为每个测试重置,而是在累积。如何在每次测试前将其设为0?我不希望我的下一次测试取决于上一次的结果。我知道Jest中有beforeEach-我应该使用它吗?重置mock.calls.length的最佳方法是什么?谢谢你。代码示例:求和.js:importlocalfrom'api/local';exportdefault{addNumbers(a,b){if(a+b求和.test.jsimportsumfrom'api/sum';importlocalfrom'api/local';

javascript - 如何在每次测试前重置 Jest 模拟函数调用计数

我是Jest的新手,我正在尝试使用它来测试函数是否被调用。我注意到mock.calls.length并没有为每个测试重置,而是在累积。如何在每次测试前将其设为0?我不希望我的下一次测试取决于上一次的结果。我知道Jest中有beforeEach-我应该使用它吗?重置mock.calls.length的最佳方法是什么?谢谢你。代码示例:求和.js:importlocalfrom'api/local';exportdefault{addNumbers(a,b){if(a+b求和.test.jsimportsumfrom'api/sum';importlocalfrom'api/local';

javascript - 如何使用 Jest 模拟同一模块中的函数?

正确模拟以下示例的最佳方法是什么?问题是在导入时间之后,foo保留对原始未模拟的bar的引用。module.js:exportfunctionbar(){return'bar';}exportfunctionfoo(){return`Iamfoo.baris${bar()}`;}module.test.js:import*asmodulefrom'../src/module';describe('module',()=>{letbarSpy;beforeEach(()=>{barSpy=jest.spyOn(module,'bar').mockImplementation(jest.f

javascript - 如何使用 Jest 模拟同一模块中的函数?

正确模拟以下示例的最佳方法是什么?问题是在导入时间之后,foo保留对原始未模拟的bar的引用。module.js:exportfunctionbar(){return'bar';}exportfunctionfoo(){return`Iamfoo.baris${bar()}`;}module.test.js:import*asmodulefrom'../src/module';describe('module',()=>{letbarSpy;beforeEach(()=>{barSpy=jest.spyOn(module,'bar').mockImplementation(jest.f

javascript - Jest : how to mock console when it is used by a third-party-library?

我正在尝试模拟console.warn/error但我做不到。我使用了一个第三方库,它在里面调用了console.warn。我需要测试它是否被调用。在我的测试用例中,我试图stubconsole.warn但它没有帮助。之后我尝试手动模拟控制台,但也没有成功。console.warn=jest.fn();testSchema('/app/components/Users/UserItem/UserItemContainer.js');expect(console.warn).toBeCalled();没用console.warn=jest.fn();testSchema('/app/co

javascript - Jest : how to mock console when it is used by a third-party-library?

我正在尝试模拟console.warn/error但我做不到。我使用了一个第三方库,它在里面调用了console.warn。我需要测试它是否被调用。在我的测试用例中,我试图stubconsole.warn但它没有帮助。之后我尝试手动模拟控制台,但也没有成功。console.warn=jest.fn();testSchema('/app/components/Users/UserItem/UserItemContainer.js');expect(console.warn).toBeCalled();没用console.warn=jest.fn();testSchema('/app/co

javascript - 在 Jest 中模拟按钮点击

模拟按钮点击似乎是一个非常简单/标准的操作。然而,我无法让它在Jest.js测试中工作。这是我尝试过的(并且也是使用jQuery进行的),但它似乎没有触发任何东西:import{mount}from'enzyme';page=;pageMounted=mount(page);constbutton=pageMounted.find('#some_button');expect(button.length).toBe(1);//Itfindsitalrightbutton.simulate('click');//Nothinghappens 最佳答案

javascript - 在 Jest 中模拟按钮点击

模拟按钮点击似乎是一个非常简单/标准的操作。然而,我无法让它在Jest.js测试中工作。这是我尝试过的(并且也是使用jQuery进行的),但它似乎没有触发任何东西:import{mount}from'enzyme';page=;pageMounted=mount(page);constbutton=pageMounted.find('#some_button');expect(button.length).toBe(1);//Itfindsitalrightbutton.simulate('click');//Nothinghappens 最佳答案

javascript - 如何在 Jest 中测试抛出异常的类型

我正在处理一些代码,我需要在其中测试函数抛出的异常类型(是TypeError、ReferenceError等吗?)。我当前的测试框架是AVA,我可以将它作为第二个参数t.throws方法进行测试,如下所示:it('shouldthrowErrorwithmessage\'UNKNOWNERROR\'whennoparamswerepassed',(t)=>{consterror=t.throws(()=>{throwError();},TypeError);t.is(error.message,'UNKNOWNERROR');});我开始用Jest重写我的测试,但找不到如何轻松地做到这