ts-jest: ошибки типа TypeScript игнорируются - PullRequest
1 голос
/ 07 апреля 2019

Я только начал изучать TypeScript и попробовал какое-то простое приложение с модульным тестом jest (используя ts-jest):

модуль простого app.ts:

function greet(person: string): string {
  return `Hello, ${person}`;
}

exports.greet = greet;

simple app.spec.Код TS:

const greetObject = require('../app');

greetObject.greet(1);

describe('greet function', () => {
  it('should return greeting', () => {
    expect(greetObject.greet('Dude')).toEqual('Hello, Dude');
  });
  it('should throw type exception', () => {
    const spy = jest.spyOn(greetObject, 'greet');
    greetObject.greet(1);
    /** @todo what should happen ? */
  });
});

и вопрос: я должен получить ошибку типа или нет?На самом деле я не получаю никаких ошибок здесь.

Но если я вызываю greet с неверным типом параметра в файле app.ts, весь набор тестов не работает.

Я что-то упустил в TypeScriptмодульное тестирование?

UPD. Преобразовано требуется в импорт ES6.Диагностика TypeScript сейчас работает, но я до сих пор не знаю, смогу ли я что-нибудь сделать с неправильными типами и протестировать эти ситуации.Любой совет приветствуется.

1 Ответ

1 голос
/ 07 апреля 2019

я должен получить ошибку типа или нет?

Не здесь.

То, что вы тестируете, это вывод JS вашего файла TS.

Ошибки TS: время компиляции ошибки.

Я все еще не понимаюНе знаю, смогу ли я что-нибудь сделать с неправильными типами и проверить эти ситуации.

Нет проверки типов во время выполнения с помощью TypeScript, поскольку среда выполнения не TypeScript, но JavaScript.

Если вы хотите проверить полученный объект,Вы должны реализовать реальные функции проверки.

может быть полезно:

Как проверить тип объекта во время выполнения в TypeScript?

...