Questions tagged «jestjs»

Jest是Facebook基于Jasmine制作的JavaScript单元测试框架,并提供了自动模拟创建和jsdom环境。它通常用于测试React组件。

15
如何使用Jest测试单个文件?
我可以使用Jest测试多个文件,但无法弄清楚如何测试单个文件。 我有: 跑 npm install jest-cli --save-dev 更新package.json:`{...“脚本”:{“测试”:“玩笑”} ...} 编写了许多测试。 运行npm test按预期进行(当前运行14个测试)。 如何测试单个文件,例如test app/foo/__tests__/bar.spec.js? 我尝试npm test app/foo/__tests__/bar.spec.js从项目根目录运行,但是出现以下错误: npm ERR! Error: ENOENT, open '<path to project>/node_modules/app/foo/__tests__/bar.spec.js/package.json' 谢谢
359 node.js  jestjs 

13
如何使用Jest运行单个测试?
我在fix-order-test.js文件中有一个测试“可与嵌套子代一起工作”。 运行以下命令将运行文件中的所有测试。 jest fix-order-test 如何只运行一个测试?以下内容不起作用,因为它搜索指定的正则表达式文件。 jest 'works with nested children'
355 jestjs 

7
如何使用Jest模拟ES6模块导入?
我开始认为这是不可能的,但是无论如何我都想问。 我想测试我的一个ES6模块以特定方式调用另一个ES6模块。有了茉莉花,这非常容易- 应用程式码: // myModule.js import dependency from './dependency'; export default (x) => { dependency.doSomething(x * 2); } 和测试代码: //myModule-test.js import myModule from '../myModule'; import dependency from '../dependency'; describe('myModule', () => { it('calls the dependency with double the input', () => { spyOn(dependency, 'doSomething'); myModule(2); expect(dependency.doSomething).toHaveBeenCalledWith(4); }); }); 笑话相当于什么?我觉得这是一件很想做的简单的事情,但是我一直在努力尝试弄清头发。 我最接近的方法是将imports …

6
开玩笑的“ it”和“ test”有什么区别?
我的测试组中有两个测试。一个使用它,另一个使用测试,它们的工作方式似乎非常相似。它们之间有什么区别? describe('updateAll', () => { it('no force', () => { return updateAll(TableName, ["fileName"], {compandId: "test"}) .then(updatedItems => { let undefinedCount = 0; for (let item of updatedItems) { undefinedCount += item === undefined ? 1 : 0; } // console.log("result", result); expect(undefinedCount).toBe(updatedItems.length); }) }); test('force update', () => { return …

9
如何在Jest中使用ESLint
我正在尝试将ESLint linter与Jest测试框架一起使用。 开玩笑的测试是与某些全局变量一起运行的,例如jest,我需要告诉linter;但是棘手的是目录结构,通过Jest,测试是与源代码一起嵌入在__tests__文件夹中的,因此目录结构类似于: src foo foo.js __tests__ fooTest.js bar bar.js __tests__ barTest.js 通常,我会将所有测试都放在一个目录下,并且可以在其中添加.eslintrc文件以添加全局变量...但是我当然不想.eslintrc在每个__test__目录中都添加文件。 现在,我刚刚将测试全局变量添加到了全局.eslintrc文件中,但是由于那意味着我现在可以jest在非测试代码中进行引用,因此这似乎不是“正确的”解决方案。 是否有办法让eslint根据基于目录名称的某种模式来应用规则,或者类似的方法?

14
在jest.setTimeout指定的5000ms超时内未调用异步回调
我正在使用puppeteer和jest进行一些前端测试。 我的测试如下所示: describe("Profile Tab Exists and Clickable: /settings/user", () => { test(`Assert that you can click the profile tab`, async () => { await page.waitForSelector(PROFILE.TAB); await page.click(PROFILE.TAB); }, 30000); }); 有时,当我运行测试时,一切都会按预期进行。其他时候,我得到一个错误: Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout. at node_modules/jest-jasmine2/build/queue_runner.js:68:21 at Timeout.callback [as …

12
如何在Jest中测试引发的异常的类型
我正在使用一些代码,在其中我需要测试由函数引发的异常类型(是TypeError,ReferenceError等)。 我当前的测试框架是AVA,可以将其作为第二个参数t.throws方法进行测试,如下所示: it('should throw Error with message \'UNKNOWN ERROR\' when no params were passed', (t) => { const error = t.throws(() => { throwError(); }, TypeError); t.is(error.message, 'UNKNOWN ERROR'); }); 我开始将测试重写为Jest,但找不到如何轻松地做到这一点。可能吗

11
Jest SecurityError:localStorage不适用于不透明的来源
当我想使用命令运行项目时npm run test,出现以下错误。是什么原因造成的? FAIL ● Test suite failed to run SecurityError: localStorage is not available for opaque origins at Window.get localStorage [as localStorage] (node_modules/jsdom/lib/jsdom/browser/Window.js:257:15) at Array.forEach (<anonymous>)


5
如何依次运行Jest测试?
我正在通过进行Jest测试npm test。Jest默认情况下并行运行测试。有什么方法可以使测试按顺序运行? 我有一些测试调用依赖于更改当前工作目录的第三方代码。
140 jestjs 

8
Jest的代码覆盖率
是否有一种方法可以在基于Jasmine的Javascript Jest测试框架中进行代码覆盖? 内部框架不会打印出获得的代码覆盖范围。我也尝试使用Istanbul,毯子和JSCover,但是它们都不起作用。
131 javascript  jestjs 

9
用Jest测试process.env
我有一个取决于环境变量的应用程序,例如: const APP_PORT = process.env.APP_PORT || 8080; 我想测试例如: 可以通过节点env变量设置APP_PORT。 或某个express应用程序正在使用以下命令设置的端口上运行process.env.APP_PORT 我如何用Jest做到这一点?我可以process.env在每次测试之前设置这些变量,还是应该以某种方式模拟它?

14
如何在Jest中设置模拟日期?
我正在使用moment.js在React组件的帮助器文件中执行大多数日期逻辑,但是我还无法弄清楚如何在Jest a la中模拟日期sinon.useFakeTimers()。 Jest文档仅谈论诸如等的计时器功能setTimeout,setInterval但无助于设置日期,然后检查我的日期功能是否按照其预期的方式工作。 这是我的一些JS文件: var moment = require('moment'); var DateHelper = { DATE_FORMAT: 'MMMM D', API_DATE_FORMAT: 'YYYY-MM-DD', formatDate: function(date) { return date.format(this.DATE_FORMAT); }, isDateToday: function(date) { return this.formatDate(date) === this.formatDate(moment()); } }; module.exports = DateHelper; 这是我使用Jest设置的内容: jest.dontMock('../../../dashboard/calendar/date-helper') .dontMock('moment'); describe('DateHelper', function() { var DateHelper = require('../../../dashboard/calendar/date-helper'), moment = require('moment'), DATE_FORMAT …
111 momentjs  jestjs 

7
取消模拟模块时如何在Jest中模拟导入的命名函数
我有以下模块要在Jest中进行测试: // myModule.js export function otherFn() { console.log('do something'); } export function testFn() { otherFn(); // do other things } 如上所示,它导出了一些命名函数并重要地testFn使用otherFn。 在Jest中,当我为其编写单元测试时testFn,我想模拟该otherFn函数,因为我不希望输入错误otherFn影响我的单元测试testFn。我的问题是我不确定做到这一点的最佳方法: // myModule.test.js jest.unmock('myModule'); import { testFn, otherFn } from 'myModule'; describe('test category', () => { it('tests something about testFn', () => { // I want to mock "otherFn" …

4
如何清除Jest缓存?
Jest正在获取旧版本的软件包,因此除非使用,否则我的测试将失败--no-cache。我什至可以从以下位置删除包文件夹node_modules,Jest很乐意运行测试(几乎所有通过测试)。 那么,如何清除Jest缓存?
108 jestjs 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.