JestとSnapshotのテストを始めたばかりなので、すべての例でReactコンポーネントの「ディープレンダリング」がスナップショットを作成する理由がわかりました。Shallow Rendering Jestスナップショット
例
const A =() => {
return <div><B /><B /></div>
}
const B =() => {
return <div>This is B</div>
}
// TEST
describe('Test',() => {
it('renders correctly',() => {
const tree = ReactTestRenderer.create(
<A />
).toJSON();
expect(tree).toMatchSnapshot();
});
});
スナップショット:
exports[`Summary DOM rendering renders correctly 1`] = `
<div>
<div>
This is B
</div>
<div>
This is B
</div>
</div>
`;
これは便利ですが、時々私はそれがAとBのための独立したテスト/スナップショットを持っているし、ので、もし浅いレンダリングを行うにははるかに理にかなっていると思います私はBを変更する私のスナップショットは更新する必要はありません。だから私はスナップショットをこのように見せたい:
exports[`Summary DOM rendering renders correctly 1`] = `
<div>
<B />
<B />
</div>
`;
これを実行する方法はありますか?これは最初の良いアイデアですか?可能であれば、浅いレンダリングがドキュメントで好まれない理由は何ですか?
反応テストレンダラパッケージとは何ですか?これはJestのドキュメントで使われていますが、どこから来たのか分かりません。それは反応や冗談の一部ですか? react-addons-test-utilsとどのように違うのですか? Jestのドキュメントでreact-addons-test-utilsを使用しないのはなぜですか? – Hoffmann
'react-test-renderer'はコンポーネントをJSONに直接レンダリングするレンダラーです。 'react-addons-test-utils'は、Reactテストの作成を支援する一連のユーティリティツールです。彼らはどちらも独立したパッケージです:彼らはReactチームによって作成されますが、ReactもJestも付属していません。私は私の答えを更新します。 – Lucas
@Hoffmann私の回答 – Lucas