Unit tests on javascript
Решил таки добраться до тестирования. Сам люблю TypeScript, собрал тестовую среду (karma + mocha + require + expect.js + source-map-support), все было хорошо пока не начал тестировать один из модулей связанных с window.location. На сколько я понял - основной принцип тестирования - переопределить что-то заменить на своё, но при попытке заменить window.location на свой объект я получаю ошибку "TypeError: Cannot redefine property: location". Отсюда вопрос: как вообще принято тестировать модули, работа которых завязана на непереопределяемые методы window? Не хочется делать прослойку которая бы выдавала location только ради тестов.
|
Ну вообщем пока что я передаю ему location в конструктор.
|
1. тему надо было создавать в серверном js
2. если я правильно понял, тебе нужена эмуляция браузера на сервере. Используй karma-phantomjs-launcher или другой движок/драйвер_браузера Пример можешь посмотреть у меня в репе https://github.com/nervgh/recursive-iterator |
nerv_,
Так у меня уже используется карма, которая запускает хром. Почему на сервере? Вполне на клиенте, я же тестирую клиентский код. Сейчас почитаю, спасибо! |
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Сейчас ты пытаешься установить значение хеша? location.hash = 12; должно работать) |
Цитата:
я тоже мегастабами страдал (это норма, как говорится) серьёзно говоря: ты преувеличил то, что надо "заменять на своё" (т.е. создавать stub'ы) Цитата:
либо тест одного модуля - выноси привязку к location в отдельный компонент и делай его stub в тесте. |
Часовой пояс GMT +3, время: 14:37. |