Я пытаюсь создать Spyon в моем шутке Setupfilesafterenv , чтобы обнаружить вызовы сети/Axios и проверить URL. Если URL -адрес является реальным URL, т.е. не содержит «подделки», то выбросьте ошибку. Если он проходит, продолжайте как обычно.const USER_DETAILS_API = 'https://home.details/rest';
const USER_INVOICE_API = 'https://home.invoice/rest';
export async function getUserDetails(userId) {
return axios.get(USER_DETAILS_API = '/' + userId, {
responseType: 'json'
})
}
< /code>
user.service.spec.ts
import axios from 'axios';
import * as UserService from '../user.service';
describe('UserService test', () => {
beforeEach(() => {
jest.restoreAllMocks();
jest.clearAllMocks();
});
it('should filter and get the correct value', () => {
const getSpy = jest.spyOn(axios, 'get').mockReturnValue(Promise.resolve({
data: {//blah
}
await UserService.getUserDetails('123');
expect(getSpy).toBeCalledTimes(1);
});
});
< /code>
setupfilesafterenv.js
import axios from 'axios';
global.beforeEach(() => {
console.log('before each');
jest.spyOn(axios, 'get').mockImplementation((url, ...args) => {
console.log('spying from setup file..', url);
if(url && url.includes('.fake')) {
return Promsie.resolve({data: {}})
}
else {
return throwError('Live API called: ', url)
}
});
});
< /code>
Когда я запускаю свой тест, я вижу следующие журналы: < /p>
jest --verbose --config ./jest.config.cjs
console.log
before each
Подробнее здесь: https://stackoverflow.com/questions/794 ... triggering
Jest setupfilesafterenv spyon не запускает ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Vue 3 + Jest: функция не запускает ожидаемое изменение состояния в тесте
Anonymous » » в форуме Javascript - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
В этом выпуске он запускает драйвер Chrome, но не запускает веб-страницу.
Anonymous » » в форуме JAVA - 0 Ответы
- 135 Просмотры
-
Последнее сообщение Anonymous
-