reactjs – 在测试包含react-slick的create-react-app组件时,matchMedia不存在?

前端之家收集整理的这篇文章主要介绍了reactjs – 在测试包含react-slick的create-react-app组件时,matchMedia不存在?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图为我现有的项目创建测试文件

https://github.com/facebookincubator/create-react-app

但是当我运行npm测试时我得到了这个错误

  1. FAIL src/__tests__/movie_single/MovieSingle-test.js
  2. Test suite Failed to run
  3.  
  4. matchMedia not present,legacy browsers require a polyfill
  5.  
  6. at Object.MediaQueryDispatch (node_modules/enquire.js/dist/enquire.js:226:19)
  7. at node_modules/enquire.js/dist/enquire.js:291:9
  8. at Object.<anonymous>.i (node_modules/enquire.js/dist/enquire.js:11:20)
  9. at Object.<anonymous> (node_modules/enquire.js/dist/enquire.js:21:2)
  10. at Object.<anonymous> (node_modules/react-responsive-mixin/index.js:2:28)
  11. at Object.<anonymous> (node_modules/react-slick/lib/slider.js:19:29)
  12. at Object.<anonymous> (node_modules/react-slick/lib/index.js:3:18)
  13. at Object.<anonymous> (src/components/movie_single/MovieDetailsBox.js:4:45)
  14. at Object.<anonymous> (src/components/movie_single/MovieSingle.js:3:50)
  15. at Object.<anonymous> (src/__tests__/movie_single/MovieSingle-test.js:3:46)
  16. at process._tickCallback (internal/process/next_tick.js:103:7)
  17.  
  18. Test Suites: 1 Failed,1 total
  19. Tests: 0 total
  20. Snapshots: 0 total
  21. Time: 2.642s
  22. Ran all test suites matching "a".

所以这是我的package.json

  1. {
  2. "name": "xxx","version": "0.1.0","private": true,"devDependencies": {
  3. "autoprefixer-stylus": "0.10.0","concurrently": "3.0.0","react-scripts": "0.6.1","stylus": "0.54.5"
  4. },"scripts": {
  5. "start": "react-scripts start","watch": "concurrently --names 'webpack,stylus' --prefix name 'npm run start' 'npm run styles:watch'","build": "react-scripts build","test": "react-scripts test --env=jsdom","eject": "react-scripts eject",}
  6. }

这是我的MovieSingle-test.js

  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import MoviesSingle from '../../components/movie_single/MovieSingle';
  4.  
  5. it('renders without crashing',() => {
  6. const div = document.createElement('div');
  7. ReactDOM.render(<MoviesSingle />,div);
  8. });

那么我该如何解决这个问题并至少让常见的反应组件测试通过?

谢谢!

将src / setupTests.js添加到项目中(将在运行测试之前执行):
  1. /**
  2. * fix: `matchMedia` not present,legacy browsers require a polyfill
  3. */
  4. global.matchMedia = global.matchMedia || function() {
  5. return {
  6. matches : false,addListener : function() {},removeListener: function() {}
  7. }
  8. }

猜你在找的React相关文章