酶浅渲染总是尝试渲染根index.js

时间:2018-05-22 14:54:15

标签: javascript reactjs redux jestjs enzyme

我开始开发一个应用程序,第一批测试有几个这样的测试来测试组件是否呈现:

import { shallow } from 'enzyme';
import NavLink from 'components/sidebar/NavLink';

it('renders without crashing', () => {
  const wrapper = shallow(NavLink);
  expect(wrapper).toBeDefined();
});

[编辑]此测试也失败了:

import { take } from 'redux-saga';
import fetchSaga from 'store/events/saga';
import { types } from 'store/events/reducer';

it('should know Events where requested', () => {
  const gen = fetchSaga();
  expect(gen.next().value).toEqual(take(types.EVENTS_REQUESTED));
});

我尝试了各种组件的这种方法,但它们始终失败:

FAIL  src/components/sidebar/navLink/NavLink.test.jsx
● Test suite failed to run

  Expected the reducer to be a function.

  at createStore (node_modules/redux/lib/redux.js:97:11)
  at node_modules/redux/lib/redux.js:561:31
  at createStore (node_modules/redux/lib/redux.js:93:33)
  at configureStore (src/store/configureStore.js:10:40)
  at Object.<anonymous> (src/index.jsx:9:44)
  at Object.<anonymous> (node_modules/cheerio/node_modules/parse5/lib/parser/parser_stream.js:5:14)
  at Object.<anonymous> (node_modules/cheerio/node_modules/parse5/lib/index.js:41:24)
  at Object.<anonymous> (node_modules/cheerio/lib/parse.js:5:14)
  at Object.<anonymous> (node_modules/cheerio/lib/cheerio.js:5:13)
  at Object.<anonymous> (node_modules/cheerio/index.js:5:28)
  at Object.<anonymous> (node_modules/enzyme/build/ReactWrapper.js:13:16)
  at Object.<anonymous> (node_modules/enzyme/build/index.js:1:110)
  at Object.<anonymous> (node_modules/enzyme-matchers/lib/assertions/toContainReact.js:7:15)
  at Object.<anonymous> (node_modules/enzyme-matchers/lib/index.js:19:23)
  at Object.<anonymous> (node_modules/jest-enzyme/lib/index.js:5:23)
  at handle (node_modules/worker-farm/lib/child/index.js:44:8)
  at process.<anonymous> (node_modules/worker-farm/lib/child/index.js:51:3)
  at emitTwo (events.js:125:13)
  at process.emit (events.js:213:7)
  at emit (internal/child_process.js:774:12)
  at _combinedTickCallback (internal/process/next_tick.js:141:11)
  at process._tickCallback (internal/process/next_tick.js:180:9)

唯一使用configureStore的地方位于应用程序根目录中的Index.jsx中:

import React from 'react';
import ReactDOM from 'react-dom';
import { Provider as StoreProvider } from 'react-redux';
import App from './App';
import registerServiceWorker from './registerServiceWorker';
import configureStore from './store/configureStore';

const initialState = { events: { entities: [], result: {} } };
const store = configureStore(initialState);

ReactDOM.render((
  <StoreProvider store={store}>
     <App />
  </StoreProvider>), document.getElementById('root'));
registerServiceWorker();

对我来说,为什么shallow会尝试渲染完整的应用程序,而它本应该避免使用

,这没有任何意义。

知道发生了什么事吗?我觉得这是一种蹩脚的简单事物,但似乎并没有找到它是什么

0 个答案:

没有答案