Jest - one function mocks file for multiple test files(JEST-一个函数模拟多个测试文件的文件)
本文介绍了JEST-一个函数模拟多个测试文件的文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想要这样的东西:
mockFunctions.ts
jest.mock('../utils', () => {
return {
getNumbers: () => [1,2,3]
}
})
__tests__/test1.ts
---import from mockFunctions---
...
it('After adding another number array has more elements', () => {
const numbers = <get these numbers using mock function>
expect([...numbers, 11]).toHaveLength(4);
})
__tests__/test2.ts
---import from mockFunctions---
...
it('After removing a number, array has less elements', () => {
const numbers = <get these numbers using mock function>
expect(numbers.filter(x => x>1)).toHaveLength(2);
})
是否可以有一个实现模拟函数的文件,然后将其导入多个测试文件?
推荐答案
有一些替代方法可以完成此操作:
- 在utils文件夹内添加
__mocks__
目录。请参见https://jestjs.io/docs/en/manual-mocks
utils/index.js
export const getNumbers= () => [1, 2, 3, 4, 5];
->;utils/__mocks__
/index.js
export const getNumbers= () => [3, 4];
jest.config.js
{
"setupFilesAfterEnv": [
"<rootDir>/jestSetup.js"
]
}
jestSetup.js
jest.mock("../utils"); // will apply to all tests
- 直接在jestSetup.js中添加模拟定义
jest.config.js
{
"setupFilesAfterEnv": [
"<rootDir>/jestSetup.js"
]
}
jestSetup.js
jest.mock("../utils", () => ({
getNumbers: () => [3, 4]
}));
或使用模拟创建文件
mocks.js
jest.mock("../utils", () => ({
getNumbers: () => [3, 4]
}));
jestSetup.js
import './mocks.js'
如果您不想在特定测试中使用mock,可以调用:
jest.unmock('../utils')
参见:https://jestjs.io/docs/en/jest-object#jestunmockmodulename
这篇关于JEST-一个函数模拟多个测试文件的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:JEST-一个函数模拟多个测试文件的文件


猜你喜欢
- 如何显示带有换行符的文本标签? 2022-01-01
- 为什么我的页面无法在 Github 上加载? 2022-01-01
- 为什么悬停在委托事件处理程序中不起作用? 2022-01-01
- 在不使用循环的情况下查找数字数组中的一项 2022-01-01
- 我不能使用 json 使用 react 向我的 web api 发出 Post 请求 2022-01-01
- 使用 iframe URL 的 jQuery UI 对话框 2022-01-01
- 是否可以将标志传递给 Gulp 以使其以不同的方式 2022-01-01
- 如何向 ipc 渲染器发送添加回调 2022-01-01
- 如何调试 CSS/Javascript 悬停问题 2022-01-01
- 从原点悬停时触发 translateY() 2022-01-01