можете ли вы восстановить исходную функциональность при использовании automock от jest?

#jestjs #mocking

#jestjs #издевательство

Вопрос:

я хотел бы использовать automock, а затем восстановить одну функцию до ее исходного значения, протестировать ее, а затем повторно смоделировать. это казалось хорошим способом предотвратить неожиданный вызов каких-либо функций, но это кажется невозможным.

или есть другой способ внести отдельные функции в белый список для создания утверждений для них…

ОЧЕНЬ надуманный пример…

foo.js

 export function foo() {
  return 'FOO'
}
  

foo.test.js

 jest.enableAutomock()
import { foo } from 'foo.js'

foo.mockRestore()
expect(foo()).toBe('FOO')
  

Комментарии:

1. Если вам нужно случайно получить оригинальную реализацию, используйте requireActual .

2. разве использование requireActual не позволяет просто обойти автоматическую блокировку?

3. ДА. Если в большинстве тестов используется mocked foo, и вам нужно использовать реальную реализацию в одном тесте, имеет смысл импортировать другую копию модуля для этого теста. Automocks заменяют исходную реализацию, нет ничего, к чему их можно было бы восстановить. Если вам нужно, чтобы они вели себя по-другому, они не для вас, используйте ручные макеты.

4. это именно та информация, которая мне была нужна! ty !… если вы опубликуете ответ, я могу пометить его как решение 🙂