단위 테스트없이 작성한 일부 기존 코드가 있습니다 (나도 알아, 나쁜 engi, 쿠키 없음).하지만 우리는 서둘러서 며칠 만에 사이트가 필요했습니다.효소/React/Redux - 불변의 위반.
이제 기술적 부채를 청산하려고합니다. 대부분은 쉽지만 반응 구성 요소를 테스트해야합니다. JSDom 효소 사용하여 그렇게하려고 노력하지만, 종종이 오류를 얻을 :
이Invariant Violation: Could not find "store" in either the context or props of "Connect(ThankYou)". Either wrap the root component in a , or explicitly pass "store" as a prop to "Connect(ThankYou)".
그래서 내 질문은 : 어떤이 오류의 원인을, 나는이 문제를 어떻게 접근해야 하는가? 더 많은 질문이있을 것이라고 확신하지만, 지금은 큰 방해물입니다.
그래서, 여기에 시험의 설치는 다음과 같습니다
import React from 'react';
import chai from 'chai';
const expect = chai.expect;
import { shallow, mount } from 'enzyme';
import ThankYou from '../src/frontend/js/containers/ThankYou';
describe('<ThankYou />',() => {
it('is trying to get React testing to work',() => {
const wrapper = shallow(<ThankYou />);
//(I know this test *will* fail, but it's failing in the wrong way.)
expect(wrapper).to.eql({});
});
});
는 다음 구성 요소 자체입니다.
class ThankYou extends Component {
constructor(props){
super(props);
}
render() {
return (
<Paper zDepth={1} >
<div>
{thankYou.map((pgraph, i) => (<div key={"pg" + i}>
{pgraph[this.props.language]}
</div>))}
</div>
<Social />
</Paper>
);
}
}
// reduxify is a library I wrote which maps
// state, actions, and dispatch to props.
// source: https://github.com/brianboyko/reduxify/blob/master/reduxify.js
export default reduxify(actions, ['language'], ThankYou);
네, 이것은 정확하게 그 것이며, 저는 제 자신에 대해서 생각하지 못했습니다. 저는 사실이 정확한 생각을 실제로 기억하고 있습니다. 그러나 잠자리에 들기 직전에 이것이 잊혀지지 않을 때까지 잊어 버렸습니다. 아마 너무 많은 정보가 있지만 감사합니다! –