반응 구성 요소를 연결 구성 요소로 만들면 상태를 테스트 할 수없는 것처럼 보입니다. 왜 그런지 알아? 요점을 설명하기 위해, 나는 redux없이 통과하고 당신이 그것을 연결하자마자 실패하는 반응 구성 요소에 대한 테스트를했습니다.유치원 단위 테스트에서 redux 반응 구성 요소로부터 상태 가져 오기
// MyComponent.test.js
import React from 'react'
import MyComponent from '../src/components/MyComponent'
import { mount } from 'enzyme'
describe('MyComponent',() => {
describe('interactions',() => {
let wrapper
beforeEach(() => {
wrapper = shallow(<MyComponent />)
})
it('foo to equal bar',() => {
expect(wrapper.state().foo).toEqual('bar')
})
})
})
가 지금은 돌아 오는을 소개하고 구성 요소를 연결하고 있습니다 :
// MyComponent.test.js
import React from 'react'
import MyComponent from '../src/components/MyComponent'
import { mount } from 'enzyme'
import configureStore from 'redux-mock-store'
describe('MyComponent',() => {
const state = {}
const mockStore = configureStore()
describe('interactions',() => {
let wrapper
beforeEach(() => {
wrapper = mount(<MyComponent store={ mockStore(state) } />)
})
it('foo to equal bar',() => {
expect(wrapper.state().foo).toEqual('bar')
})
})
})
: 여기
// MyComponent.jsx
...
export default connect(function (state){
return {
currentUser: state.currentUser
}
})(MyComponent);
및 업데이트 된 테스트입니다 여기에
// MyComponent.jsx
import React from 'react'
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
foo: 'bar'
};
}
render() {
return <div></div>
}
}
export default MyComponent
은 통과 테스트입니다
좋은 솔루션 - 난 그냥 당신이 전면 클래스를 MyComponent 오른쪽의 수출을 추가 할 필요가 있다고 생각 명확성을 위해 추가 할 수? –
@SpencerBigum 당신이 할 수있는, 당신은 구성 요소 바로 뒤에 별도의 줄에있는 구성 요소를 내보낼 알게 될 전에'() 연결'. 둘 다 작동합니다. –
오, 좋은 전화 - 나는 그것을 보지 못했다! –