Я использую Enzyme
для тестирования моих компонентов React. Я понимаю, что для проверки сырого несвязанного компонента мне пришлось бы просто экспортировать его и протестировать (я сделал это). Мне удалось написать тест для подключенного компонента, но я действительно не уверен, правильно ли это, и что именно я хочу проверить для подключенного компонента.Redux: Как проверить подключенный компонент?
Container.jsx
import {connect} from 'react-redux';
import Login from './Login.jsx';
import * as loginActions from './login.actions';
const mapStateToProps = state => ({
auth: state.auth
});
const mapDispatchToProps = dispatch => ({
loginUser: credentials => dispatch(loginActions.loginUser(credentials))
});
export default connect(mapStateToProps, mapDispatchToProps)(Login);
Container.test.js
import React from 'react';
import {Provider} from 'react-redux';
import {mount, shallow} from 'enzyme';
import {expect} from 'chai';
import LoginContainer from '../../src/login/login.container';
import Login from '../../src/login/Login';
describe('Container Login',() => {
it('should render the container component',() => {
const storeFake = state => ({
default:() => {
},
subscribe:() => {
},
dispatch:() => {
},
getState:() => ({ ...state })
});
const store = storeFake({
auth: {
sport: 'BASKETBALL'
}
});
const wrapper = mount(
<Provider store={store}>
<LoginContainer />
</Provider>
);
expect(wrapper.find(LoginContainer).length).to.equal(1);
const container = wrapper.find(LoginContainer);
expect(container.find(Login).length).to.equal(1);
expect(container.find(Login).props().auth).to.eql({ sport: 'BASKETBALL' });
});
});
Было бы достаточно тестов для mapStateToProps и mapDispatch? – Umair
Да, действительно. Вы должны проверить с помощью инструмента покрытия, вы найдете его полностью закрытым. – anoop
. Фактическая вещь, которую я хочу знать, - это ЧТОБЫ проверить, когда мы собираемся протестировать контейнер/интеллектуальный компонент? – Umair