Я только начинаю с тестирования Jest и Snapshot, и мне было интересно, почему все примеры делают «глубокий рендеринг» компонентов React для создания моментальных снимков.Shallow Rendering Jest Snapshots
Пример
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();
});
});
Snapshot:
exports[`Summary DOM rendering renders correctly 1`] = `
<div>
<div>
This is B
</div>
<div>
This is B
</div>
</div>
`;
Хотя это полезно иногда я думаю, что это делает гораздо больше смысла, чтобы иметь отдельные тесты/снимки для A и B и сделать неглубокий рендеринга, так что если Я меняю B мои снимки A, не нужно обновлять. Поэтому я хочу, чтобы мои снимки выглядели следующим образом:
exports[`Summary DOM rendering renders correctly 1`] = `
<div>
<B />
<B />
</div>
`;
Есть ли способ сделать это? Это хорошая идея в первую очередь? Если возможно, почему мелкий рендеринг не является предпочтительным способом в документах?
Каков пакет рендеринга для реагирования? Он используется в документах Jest, но я не уверен, откуда он. Является ли это частью реакции или шутки? Как он отличается от реагирующих аддон-тест-utils? Почему в Jest docs не используются реактивные дополнения-test-utils? – Hoffmann
'response-test-renderer' - это средство визуализации, которое предоставляет компоненты непосредственно JSON. 'response-addons-test-utils' - это набор служебных инструментов, помогающих создавать тесты React. Они оба являются независимыми пакетами: они создаются командой React, но они не приходят с React или Jest. Я уточню свой ответ. – Lucas
@ Hoffmann Я обновил свой ответ – Lucas