मैं अपने प्रतिक्रिया घटकों का परीक्षण करने के लिए Enzyme
का उपयोग कर रहा हूं। मैं समझता हूं कि कच्चे अनकनेक्टेड घटक का परीक्षण करने के लिए मुझे इसे निर्यात करना होगा और इसका परीक्षण करना होगा (मैंने यह किया है)। मैंने कनेक्टेड घटक के लिए एक परीक्षण लिखने में कामयाब रहा है, लेकिन मुझे सच में यकीन नहीं है कि यह सही तरीका है और मैं वास्तव में जुड़े घटक के लिए परीक्षण करना चाहता हूं।रेडक्स: एक कनेक्टेड घटक का परीक्षण कैसे करें?
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