HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Они действительно похожи, но есть различия.</p>
1 <p>Они действительно похожи, но есть различия.</p>
2 <p>jest.fn() создан чтобы полностью подменять на свою реализацию (мокинг), то есть если вы, например, не хотите, чтобы вызывались какие-то реальные запросы в базу данных при тестировании или какие-то другие побочные эффекты.</p>
2 <p>jest.fn() создан чтобы полностью подменять на свою реализацию (мокинг), то есть если вы, например, не хотите, чтобы вызывались какие-то реальные запросы в базу данных при тестировании или какие-то другие побочные эффекты.</p>
3 <p>jest.spyOn() же позволяет просто отслеживать что функция была вызвана, без подмены реализации этой функции. jest.spyOn() так же умеет и подменять реализацию (как и jest.fn()), но он умеет это делать на время. То есть, если вы хотите сохранить оригинальную реализацию функции и может быть вызывать её при каких-то сценариях, тот тут понадобится jest.spyOn().</p>
3 <p>jest.spyOn() же позволяет просто отслеживать что функция была вызвана, без подмены реализации этой функции. jest.spyOn() так же умеет и подменять реализацию (как и jest.fn()), но он умеет это делать на время. То есть, если вы хотите сохранить оригинальную реализацию функции и может быть вызывать её при каких-то сценариях, тот тут понадобится jest.spyOn().</p>
4 <p>На самом деле jest.spyOn() - это просто синтаксический сахар. То же самое мы можем сделать используя базовый метод jest.fn(). Для этого нужно сохранять базовую реализацию и подменять её обратно, когда это нужно:</p>
4 <p>На самом деле jest.spyOn() - это просто синтаксический сахар. То же самое мы можем сделать используя базовый метод jest.fn(). Для этого нужно сохранять базовую реализацию и подменять её обратно, когда это нужно:</p>
5 <h2>Возможные проблемы</h2>
5 <h2>Возможные проблемы</h2>
6 <p>Ошибка вида</p>
6 <p>Ошибка вида</p>
7 <p>TypeError: Cannot assign to read only property 'add' of object '[object Module]'</p>
7 <p>TypeError: Cannot assign to read only property 'add' of object '[object Module]'</p>
8 <p>связана с особенностью экспорта из модуля, из которого отслеживается функция. Например, такой экспорт будет работать для примеров выше:</p>
8 <p>связана с особенностью экспорта из модуля, из которого отслеживается функция. Например, такой экспорт будет работать для примеров выше:</p>
9  
9