如何在带有酶,Jest +创建React App的测试中获取窗口值

时间:2019-02-06 00:07:24

标签: javascript reactjs mocking jestjs enzyme

由于要使用我的应用程序退出构建过程,因此我在构建后在文件中传递了一些环境变量,效果很好。但是,它通过以下错误消息破坏了我的测试:

TypeError: Cannot read property 'DATA' of undefined

  57 |   Auth: {
  58 |     oth,
> 59 |
     | ^
  60 |    
  61 |     identity: checkEnv(window.env.DATA,
  62 |       process.env.REACT_APP_DATA), 

我已经尝试了许多解决方案,但是还不能模拟window.env数据,我该怎么做?

1 个答案:

答案 0 :(得分:1)

Create React App允许您通过添加initialize the test environment文件来src/setupTests.js,该文件“将在运行测试之前自动执行”。

Create React App还使用提供全局jsdom对象的window设置了测试环境。

您可以在window.env中设置src/setupTests.js,并且在测试期间将可用:

src / setupTests.js

window.env = {
  DATA: 'hi'
}

src / code.js

export const getData = () => window.env.DATA

src / code.test.js

import { getData } from './code';

test('env', () => {
  expect(getData()).toBe('hi');  // SUCCESS
})
相关问题