#javascript #axios #jestjs
#javascript #axios #jestjs
Вопрос:
Я провожу тестирование запущенного приложения в черном ящике, и Jest ведет себя выжидательно.
const axios = require(‘axios’)
describe('the http service endpoints',() => {
test('that the http service is accepting requests to the endpoint /health', () =>
axios
.get('http://0.0.0.0:3265/health')
.then(res => {
expect(res.status).toEqual(200)
}))
})
Я получаю эту ошибку
ошибка console.error: перекрестное происхождение http://localhost запрещено
Но когда я запускаю этот же тест, используя собственное утверждение узлов и не шутя, axios ведет себя так, как я ожидал, и не выдает ошибок.
Комментарии:
1. Jest использует jsdom в качестве среды по умолчанию в тестах (ссылка: jestjs.io/docs/en/configuration.html#testenvironment-string ). Поэтому он пытается отправлять запросы, как в браузере. Если вы измените эту конфигурацию как узел, я думаю, ваша проблема будет решена. Просто поместите
--env=node
в скрипт npm или измените конфигурацию jest.2. Правильно! Большое вам спасибо! Это сработало, если хотите, укажите это как ответ.
Ответ №1:
Jest использует jsdom в качестве среды по умолчанию в тестах
(ссылка: jestjs.io/docs/en/configuration.html#testenvironment-string ).
Поэтому он пытается отправлять запросы, как в браузере. Если вы измените эту конфигурацию как узел, я думаю, ваша проблема будет решена.
Просто поместите —env=node в сценарий npm или измените конфигурацию jest