【发布时间】:2021-01-07 07:32:13
【问题描述】:
假设我有一个函数,它返回一个每次递增的 id(整数)。
let nextId = 0;
const getId = () => nextId++;
export default getId;
我将对此功能进行多次测试。通常,在每个测试中,我希望 id 被重置,这意味着我在每个测试中第一次调用该函数时,返回的值应该是 0,但事实并非如此。该值是持久的交叉测试。
import getId from './getId'
describe('getId()', () => {
it('test1', () => {
expect(getId()).toEqual(0); //passes
expect(getId()).toEqual(1); //passes
})
it('test2', () => {
expect(getId()).toEqual(0); //fails
})
})
如何解决这个问题?有一个全局变量nextId 是个坏主意吗?
【问题讨论】:
-
可以根据the docs使用
beforeEach函数 -
除了@luckongas 所说的,您可能想在
beforeEach中调用jest.resetModules()。
标签: javascript jestjs