Я новичок в typescript, react и модульном тестировании. Как я могу написать тестовый пример для следующей функции с помощью jest?

#typescript #jestjs #testcase

#машинописный текст #jestjs шутки #тестовый кейс #typescript #jestjs #тестовый пример

Вопрос:

это функция машинописного текста. Я хочу написать тестовый пример для этого.

 FUNCTION # 1:- TO CALCULATE DAYS LEFT IN NEXT BIRTHDAY

let daysLeft=('Birthday on '   moment(date).format("D MMM")   ' (in '   moment(moment(date)).add(moment(moment().format("YYYY-MM-DD")).diff(moment(date), "years")   1, "years").diff(moment().format("YYYY-MM-DD"), "days")   ' days)');

        if (birthday === today){
          return ('Today is a big day!')
        }
        else {return daysLeft;}
        }

FUNCTION # 2:- TO CALCULATE THE AGE

const ageCalculate = (date: any) : any => {
           return ( moment(moment().format("YYYY-MM-DD")).diff(moment(date), "years")); 
           }
  

Комментарии:

1. Привет, Марьям, это весь код в вашей функции? Или вы просто хотите протестировать ageCalculate ? В любом случае, похоже, что здесь отсутствует некоторая информация. Если это код внутри вашей функции, я не думаю, что он будет работать так, как вы этого ожидаете. Поскольку у вас есть оператор if / else, который оба возвращает что-то, вы никогда не достигнете области, где он вычисляет ageCalculate.

2. Здравствуйте, это две саперные функции. В первой функции я считаю дни, оставшиеся до дня рождения. Во второй функции я вычисляю возраст. Я хочу написать тесты для обеих этих функций.

Ответ №1:

Вот как мне нравится тестировать свои функции в классе. Я создаю test папку в корне моего проекта и создаю какой-то classYouAreTesting.spec.ts файл.

В этом файле у меня был бы следующий код

 //import whatever you need 

describe("Birthday class tests", () => {
    it("Today is my birthday", () => {
        //birthday class initializes to some arbitrary date, let's say "01-01-1994"
        const birthday = new Birthday();
        //getBirthday will return a string representation of the date
        const result = birthday.getBirthday();
        expect(result).toEqual("01-01-1994");
    });
  

});

Ответ №2:

Я смог сделать это сам. Решение приведено ниже:

 test('Checking days left in next bday', () => {
expect(functions.daysleft('2016-04-10')).toBe(1);
});

test('Checking days left in next bday', () => {
expect(functions.ageCalculate('1990-04-10')).toBe(28);
});