【发布时间】:2018-05-30 07:05:12
【问题描述】:
当我尝试使用 Jest + Enzyme 的快照测试时,我收到一个错误:Invalid Chai property: toMatchSnapshot。我已将我的 React 版本更新到 16.2,并使用带有 Enzyme 3 的 enzyme-to-json 库。
代码如下:
import React from 'react';
import ReactDOM from 'react-dom';
import ConnectedApp, { App } from './App';
import { ConnectedRouter } from 'react-router-redux';
import { Provider } from 'react-redux';
import { expect } from 'chai';
import { mount, shallow } from 'enzyme';
import createHistory from 'history/createMemoryHistory'
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import toJson from 'enzyme-to-json';
describe('App tests', () => {
const middlewares = [thunk];
const mockStore = configureMockStore(middlewares);
let store, container, history, wrapper;
const initialState = {
output: true
}
beforeEach(() => {
store = mockStore(initialState);
history = createHistory();
wrapper = mount(
<Provider store={store}>
<ConnectedRouter history={history}>
<ConnectedApp />
</ConnectedRouter>
</Provider>
)
});
it('+++capturing Snapshot of App', () => {
expect(toJson(wrapper)).toMatchSnapshot();
});
})
我也尝试过使用 Jest 的渲染,如下所示:
import renderer from 'react-test-renderer';
it('renders correctly', () => {
var component = <Provider store={store}>
<ConnectedRouter history={history}>
<ConnectedApp />
</ConnectedRouter>
</Provider>
const tree = renderer
.create(component)
.toJSON();
expect(tree).toMatchSnapshot();
});
但我仍然收到Invalid Chai property: toMatchSnapshot 错误。有谁知道怎么回事?
【问题讨论】:
标签: reactjs testing chai enzyme jestjs