Почему мой Vue модульный тест не распознает функцию? - PullRequest
0 голосов
/ 17 марта 2020

В настоящее время я пишу простые модульные тесты (используя Jest) для моего компонента dateFormat. js, который содержит функцию formatDateGlobal. Вот фрагмент теста:

import DateFormat from '../dateFormat';

describe('dateFormat.js', () => {
  let date1;

  beforeEach(() => {
    date1 = {
      date: '',
    };
  });

  it('Then it should return an empty string', () => {
    // Act
    const returnedDate = DateFormat.formatDateGlobal(date1);
    // Assert
    expect(returnedDate).toBe('');
  });

В нижней части dateFormat я экспортирую функцию formatDateGlobal следующим образом:

export default formatDateGlobal;

Тесты построены, как и ожидалось, но я получаю ошибку

TypeError: _dateFormat.default.formatDateGlobal is not a function

      27 |   it('Then it should return an empty string', () => {
      28 |     // Act
    > 29 |     const returnedDate = DateFormat.formatDateGlobal(date1);
         |                                     ^
      30 |     // Assert
      31 |     expect(returnedDate).toBe('');
      32 |   });

Не совсем уверен, почему это происходит, но я думаю, что это связано с тем, как я экспортирую функцию.

1 Ответ

1 голос
/ 17 марта 2020

Вы импортируете formatDateGlobal в переменную DateFormat. Таким образом, вы можете использовать const returnedDate = DateFormat(date1);

, в данный момент вы пытаетесь получить эквивалент этого: const returnedDate = formatDateGlobal.formatDateGlobal(date1);

...