Показать сообщение отдельно
  #8 (permalink)  
Старый 28.03.2015, 13:41
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от tsigel
а сколько я понял - основной принцип тестирования - переопределить что-то заменить на своё, но при попытке заменить window.location на свой объект я получаю ошибку "TypeError: Cannot redefine property: location".

я тоже мегастабами страдал (это норма, как говорится)

серьёзно говоря: ты преувеличил то, что надо "заменять на своё" (т.е. создавать stub'ы)

Сообщение от tsigel
Отсюда вопрос: как вообще принято тестировать модули, работа которых завязана на непереопределяемые методы window? Не хочется делать прослойку которая бы выдавала location только ради тестов
принцип "чёрного ящика". плевать шо оно там делает, к чему обращается - проверяй вход и выход данных публичного API (короче говоря, пиши интеграционные тесты, которые тестируют >1 модуля за раз)

либо тест одного модуля - выноси привязку к location в отдельный компонент и делай его stub в тесте.
Ответить с цитированием