私は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