使用Create React App配置Jest在测试之间重置模拟

时间:2018-09-04 07:57:01

标签: reactjs jestjs

将以下代码添加到package.json时,我收到一条错误消息,提示它不受支持:

"jest": {
    "resetMocks": true
},
  1. 我很困惑,为什么它不起作用,因为似乎已在此pull request
  2. 中添加了它
  3. 还有另一种方法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

解决方案

将以下内容添加到src/setupTests.js

beforeEach(() => {
  jest.resetAllMocks()
})

详细信息

documentation for the resetMocks option指出将其设置为true相当于“在每次测试之间调用jest.resetAllMocks()。”

查看Jest source会发现config.resetMocks的检查发生在beforeEach()内,如果true会调用jest.resetAllMocks()

使用create-react-app版本react-scripts或更高版本的0.4.0引导的应用将automatically run src/setupTests.js to initialize the test environment before each test runs

因此,将以上代码添加到src/SetupTests.js相当于将非resetMocks应用的true选项设置为create-react-app