Я читал об этом в официальной документации , в этом посте и этой проблеме в jest repo . Ни документация, ни пост в блоге не охватывают сценарий, который я пытаюсь протестировать. Поток проблем действительно покрывает это, но я не могу пройти тесты, используя любое из предложенных там решений.
Можете ли вы выполнить следующий код, чтобы пройти тестирование?
Редактировать : Чтобы быть более понятным, я хочу знать, как смоделировать импортированные функции таким образом, чтобы я мог использовать исходную реализацию в некоторых тестах и макет в других.
Эти функции foo
и bar
могут показаться очень простыми, и небольшое изменение в реализации может сделать тесты успешными, но у меня возникает вопрос о насмешках.
Для большего контекста я на самом деле пытаюсь протестировать две саги, определенные в одном файле, которые имеют побочные эффекты, которые я не хочу запускать. Я все еще хочу протестировать каждую из этих саг отдельно
// a.js
export const foo = () => 'foo-' + bar()
export const bar = () => 'bar'
// a.test.js
import {
foo,
bar
} from './a'
describe('foo', () => {
it('should return foo-MOCKED_BAR', () => {
expect(foo()).toBe('foo-MOCKED_BAR')
})
it('should have the mocked implementation of bar', () => {
expect(bar()).toBe('MOCKED_BAR')
})
})
describe('bar', () => {
it('should have the original implementation of bar', () => {
expect(bar()).toBe('bar')
})
})
describe('foo and bar together', () => {
it('should have the original implementation of both', () => {
expect(foo()).toBe('foo-bar')
})
})
Спасибо!