sta*_*uba 8 javascript reactjs jestjs react-testing-library
我想要这样的东西:
mockFunctions.ts
jest.mock('../utils', () => {
return {
getNumbers: () => [1,2,3]
}
})
Run Code Online (Sandbox Code Playgroud)
__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);
})
Run Code Online (Sandbox Code Playgroud)
__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);
})
Run Code Online (Sandbox Code Playgroud)
是否可以有一个实现模拟函数的文件,然后将它们导入到多个测试文件中?
lis*_*tdm 11
有一些替代方案可以实现此目的:
__mocks__
在 utils 文件夹内添加目录。请参阅https://jestjs.io/docs/en/manual-mocks实用程序/index.js
export const getNumbers= () => [1, 2, 3, 4, 5];
Run Code Online (Sandbox Code Playgroud)
->utils __mocks__
//index.js
export const getNumbers= () => [3, 4];
Run Code Online (Sandbox Code Playgroud)
笑话配置.js
{
"setupFilesAfterEnv": [
"<rootDir>/jestSetup.js"
]
}
Run Code Online (Sandbox Code Playgroud)
jestSetup.js
jest.mock("../utils"); // will apply to all tests
Run Code Online (Sandbox Code Playgroud)
笑话配置.js
{
"setupFilesAfterEnv": [
"<rootDir>/jestSetup.js"
]
}
Run Code Online (Sandbox Code Playgroud)
jestSetup.js
jest.mock("../utils", () => ({
getNumbers: () => [3, 4]
}));
Run Code Online (Sandbox Code Playgroud)
或使用模拟创建一个文件
模拟.js
jest.mock("../utils", () => ({
getNumbers: () => [3, 4]
}));
Run Code Online (Sandbox Code Playgroud)
jestSetup.js
import './mocks.js'
Run Code Online (Sandbox Code Playgroud)
如果您不想在特定测试中使用模拟,您可以调用:
jest.unmock('../utils')
Run Code Online (Sandbox Code Playgroud)
请参阅:https://jestjs.io/docs/en/jest-object#jestunmockmodulename
归档时间: |
|
查看次数: |
9105 次 |
最近记录: |