Как стать автором
Обновить

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

Я понимаю что статья немного о другом, но давайте поговорим о:


this.SUT.name.should.to.not.be.undefined.and.have.property('name').equal('Tom');

и.это.ещё.ладно.тут.можно.выкинуть .to и .be как минимум, jest ещё хуже, там это .shouldNotBeUndefinedOrNullIDontKnowWhateverLetsTalkAboutTheBirdsAndTheBees()


Неужели это и правда лучше чем
expect(this.SUT?.name).equal('TOM')
?

Благодарю за статью. Повторил все в точности — работает прекрасно. Но вот только если в файле .ts встречается
document.addEventListener("DOMContentLoaded", () => {
// code
})
ts-node выдает ошибку:
ReferenceError: document is not defined
at Object. anonymous ...

Хотя tsconfig.json настроен правильно и tsc компилит файлы без проблем. Может кто знает как настроить правильно?

В nodejs окружении нету document, т. к. это часть браузерного API. Мы пишем тесты на jest, и там используется https://github.com/jsdom/jsdom. Не подскажу как насторить mocha, но можно попробовать подключить jsdom. Eсли не хочется тянуть либу то можно замокать, или может запускать тесты в браузере.

Не совсем то. Если в файле tsconfig.json добавить строчку «lib»: [«DOM», «DOM.Iterable», «ScriptHost», «ES6»], то сам тайпскрипт командой tsc компилит файлы с document без проблем. Но если использовать ts-node — никакие конфиги самого ts-node, параметры командной строки мне не помогли. Все время выбрасывает ошибку. Вот я и хочу узнать можно ли в принципе это настроить или бесполезно пытаться. Может у кого получилось.

lib в tsconfig добавляет только определения типов. Соответственно TS понимает что такое document и что от него ждать, но сама имплементация лежит на вас. Лучше, как сказали выше, подключить jsdom

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории