草庐IT

javascript - 开 Jest 监视功能

我正在从Mocha切换到Jest,我想知道是否有办法监视React方法。例如,假设我的组件中有以下方法(忽略sdk库,它只是构造一个jQueryAjax调用):getData(){sdk.getJSON('/someURL').done(data=>{this.setState({data});});}使用Sinon,我会像这样监视原型(prototype)来测试它:it('shouldcallgetData',()=>{sinon.spy(Component.prototype,'getData');mount();expect(Component.prototype.getData

javascript - VS Code 调试器中的 Jest + Babel 导致断点移动

我正在尝试使用babel、jest和vscode调试一个简单的项目。当我设置一个断点然后开始调试时,我的断点跳来跳去,不再是我开始时的位置。可以在此处查看样本repo-https://github.com/RyanHirsch/starter-node我已经更新了我的launch.json以包含{"name":"Jest","type":"node","request":"launch","program":"${workspaceRoot}/node_modules/jest/bin/jest.js","stopOnEntry":false,"args":["-i","${file}

javascript - 使用 Jest 和 Webpack 别名进行测试

我希望能够在使用jest时使用webpack别名来解析导入,并且最好引用webpack.aliases以避免重复。开Jestsession:"jest":{"modulePaths":["src"],"moduleDirectories":["node_modules"],"moduleNameMapper":{"^@shared$":"/shared/","^@components$":"/shared/components/"}},Webpack别名:exports.aliases={'@shared':path.resolve(paths.APP_DIR,'shared'),'@

javascript - 如何获取在 jest mock 函数中调用的参数?

如何获取在jestmock函数中调用的参数?我想检查作为参数传递的对象。 最佳答案 只需使用mockObject.calls。就我而言,我使用了:constcall=mockUpload.mock.calls[0][0]这是documentationaboutthemockproperty 关于javascript-如何获取在jestmock函数中调用的参数?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

javascript - 我如何使用 Jest 来监视方法调用?

我最近想测试一些自定义方法是否在React组件的componentDidMount方法中被有条件地调用。componentDidMount(){if(this.props.initOpen){this.methodName();}}我使用Jest作为我的测试框架,其中包括用于模拟/spy的jest.fn()。我读过,通过执行以下操作,用Sinon进行测试会相当简单:sinon.spy(Component.prototype,"methodName");constwrapper=mount();expect(wrapper.instance().methodName).toHaveBee

javascript - 如何用 jest 和 enzyme 模拟 React 组件方法

我有一个React组件(这是为了演示问题而简化的):classMyComponentextendsComponent{handleNameInput=(value)=>{this.searchDish(value);};searchDish=(value)=>{//Dosomething}render(){return()}}现在我想测试handleNameInput()使用提供的值调用searchDish。为了做到这一点,我想创建一个jestmockfunction替换组件方法。到目前为止,这是我的测试用例:it('handleNameInput',()=>{letwrapper=s

javascript - 如何使用 Jest 模拟 JavaScript 'window' 对象?

我需要测试一个在浏览器中打开新标签页的功能openStatementsReport(contactIds){window.open(`a_url_${contactIds}`);}我想模拟window的open函数,这样我就可以验证传递给open函数的URL是否正确。使用Jest,我不知道如何模拟window。我试图用模拟函数设置window.open,但这种方式不起作用。下面是测试用例:it('thecorrectURLiscalled',()=>{window.open=jest.fn();statementService.openStatementsReport(111);exp

javascript - 在 Jest 中模拟全局变量

在Jest中有什么方法可以模拟全局对象,例如navigator或Image*?我几乎放弃了这一点,并将其留给了一系列可模拟的实用方法。例如://Utils.jsexportisOnline(){returnnavigator.onLine;}测试这个小函数很简单,但很麻烦,而且根本不确定。我可以完成75%的路程,但这是我所能达到的极限://Utils.test.jsit('knowsifitisonline',()=>{const{isOnline}=require('path/to/Utils');expect(()=>isOnline()).not.toThrow();expect

javascript - 使用 Jest 只运行一次测试

我只想用Jest运行一个测试。我使用it.only或describe.only,但它仍然运行大量测试。我认为它运行了self上次提交以来的所有测试,但它不应该在显式设置only标志的情况下出现这种行为,对吧?是什么导致了这种行为?我该如何运行单个测试? 最佳答案 Jestparallelizestestrunsanditdoesn'tknowupfrontwhichtestsitshouldrunandwhichitshouldn'trun.Thismeanswhenyouuse"fit",itwillonlyrunonetesti

node.js - 使用 Jest 模拟 namespace 和具有相同名称的函数

我正在使用的库的结构为declarenamespacefoo{functionbar();};declarenamespacefoo.bar{functionbaz();};所以我需要模拟的两个函数是foo.bar()和foo.bar.baz()。模拟我之前使用的foo.bar()require('foo');jest.mock('foo',()=>({bar:()=>mockedBar,}));有什么方法可以模拟foo.bar.baz()吗?我试过了jest.mock('foo.bar',()=>({}));但它显示一条消息Cannotfindmodule'foo.bar'from'