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