Jest와 Enzyme을 사용하여 내 React 앱을 스냅 샷 테스트하고 있습니다. 상위 구성 요소에 래핑되지 않은 내 구성 요소의 테스트 가능한 버전을 내보내려고합니다.효소가 기본 구성 요소 대신 포장 된 구성 요소를 렌더링합니다.
래핑 된 구성 요소를 내 앱에서 사용할 수 있도록 내보내고 테스트 가능한 버전, 즉 내 구성 요소의 래핑되지 않은 버전도 내 보내려합니다. 위의 내용과 같습니다 스냅 샷을 생성
NavBar.jsx
const NavBar = ({props}) => {(
<div>...</div>
)}
export { NavBar as TestableNavBar };
export default withStyles(styles)(NavBar);
NavBar.test.js
import React from 'react';
import { shallow } from 'enzyme';
import toJson from 'enzyme-to-json';
import { TestableNavBar } from './NavBar';
const props = {
...
};
describe('Navbar',() => {
it('should render correctly',() => {
const wrapper = shallow(<TestableNavBar {...props} />);
const tree = toJson(wrapper);
expect(tree).toMatchSnapshot();
});
});
:
이
내 구성 요소입니다<div>
<withStyles(AppBar)
className=""
>
<withStyles(Toolbar)
disableGutters={true}
>
<withStyles(IconButton)
aria-label="open drawer"
className=""
color="contrast"
onClick={[Function]}
>
...
</div>
아직도 HOC를 렌더링하려고하는 이유가 무엇인지 이해할 수 없습니까?
정말로 HOC를 렌더링하고 있습니까? 첫 번째로 렌더링 된 요소는'NavBar' 반환 값에 선언 된대로'div'입니다. –
@toomuchdesign true. 그러나 그때 당신은 모든'을 보았습니다. 다소 혼란 스럽습니다. 왜 그곳에 있습니까? 뿐만 아니라이 테스트의 결과는 내 보낸 기본 NavBar –
Chris