2016-05-05 3 views
1

Я использую mocha с jsdom для модульного тестирования библиотеки JavaScript. Один из модулей в библиотеке имеет различное поведение в зависимости от того, готов ли документ. Чтобы проверить это поведение, мне нужно смоделировать документ, который еще не полностью готов (т. Е. Это свойство readyState - "loading"). Простое решениеМетоды обхода для jsdom document.readyState, который только читается?

delete document.readyState 
document.readyState = 'loading' 
// perform tests ... 

не работает, потому что jsdom рассматривает readyState свойство как неизменяемые. Даже после этого кода readyState остается "complete"

Кто-нибудь сталкивался с любыми умными обходами для этого ограничения?

ответ

2

Как и в браузере, вы не можете удалить или установить document.readyState. Как и в браузере, вы можете изменить то, что возвращает геттер, переопределив его:

Object.defineProperty(document, "readyState", { 
    get() { return "loading"; } 
}); 
+0

Точно, что я надеялся узнать. благодаря –

 Смежные вопросы

  • Нет связанных вопросов^_^