Я создаю модульный тест для проекта nodejs.
Здесь я столкнулся со следующей ошибкой.
Сообщение об ошибке:
error TS2345: Argument of type 'string | number' is not assignable to parameter of type 'string'.
Type 'number' is not assignable to type 'string'.
const result = convertTimeStringToNumber(input);
Мне нужно использовать 'input' (string) как аргумент для convertTimeStringToNumber, чтобы получить 'result' (число), чтобы я мог сравнить результат (число) с ожидаемым результатом (число).
Я хотел перебрать массив с помощью test.each, чтобы я мог протестировать сразу несколько пар данных.
Пожалуйста, дайте мне знать, как мне этого добиться.
Вот мой код и тестовый код .
timeUil.ts
export function convertTimeStringToNumber(timeString) {
return [timeString]
.map(str => str.replace(':', ''))
.map(parseInt)[0]
}
test.spe c .ts
const oldtimes = [['9:30', 930], ['11:00', 1100], ['14:34', 1434], ['19:45', 1945]];
describe("convertTimeStringToNumber", () => {
test.each(oldtimes)(
"given %s, convert to %i", (input, expectedResult) => {
const result = convertTimeStringToNumber(input);
expect(result).toBe(expectedResult);
});
});