Я использую Jest для тестирования с помощью приложения Create React, и я пытаюсь проверить асинхронную функцию вместе с синхронным кодом, и мне нужно, чтобы она выдавала, когда синхронная часть имеет ошибку.
Тест состоитпри ожидании выдачи функции при получении неправильных типов аргументов.
Функция throw "Неверные аргументы." при получении аргументов типа, отличного от "undefined" (функция безаргументы) или "число" .
USER_API - это URL-адрес API для вызова.
Вот функция:
export const getUsers = async (count, ...rest) => {
if (["undefined", "number"].includes(typeof count) && rest.length === 0) {
const response = await fetch(USERS_API);
const users = await response.json();
if (count && typeof count === "number") {
return users.slice(0, count - 1);
}
return users;
}
throw "Invalid arguments.";
};
Здесьэто тест:
it.only("should throw on invalid arguments", () => {
const str = "hello";
expect(() => getUsers(str)).toThrow(/invalid/gi);
});
Я вызвал функцию для выброса
Но запуск теста показывает: Ожидается, что функция выдаст ошибку, соответствующую: / invalid / gi Но она не бросилачто-нибудь.
Правильный ли метод тестирования или я пишу плохой тест?Если это плохо, как я могу улучшить это?
Спасибо.