Qunit-тестирование не проходит, потому что document.get * не будет работать на тестовой HTML-странице. - PullRequest
0 голосов
/ 20 марта 2012

Я только начинаю модульное тестирование JS и пробую qUnit.

Когда мой JS выполняется (через функцию init ()), он захватывает некоторые узлы со страницы, которые необходимы для правильной работы JS.

В настоящее время мой тест qUnit не проходит даже до его запуска, поскольку он не находит эти узлы в тестовом html-файле.

Я вообще не использую jQuery в моем JS (без фреймворка).

Я немного огляделся, что означает, что я должен загрузить iframe со своей страницей на страницу test.html. Тогда мне нужно заменить документ на iframe.document или что-то подобное, верно?

Это возможно? Как бы я это сделал, чтобы мой document.getElementById () не вышел из строя. Похоже, мне нужно установить контекст локального test.html так же, как контекст iframe (по крайней мере, окна, документа и т. Д., Чтобы он мог ссылаться на те же узлы).

Есть мысли?

1 Ответ

3 голосов
/ 20 марта 2012

Да, насколько я знаю, узлы документа, которые вы упоминаете, являются тестовыми данными.Страница QUnit unit-test.html содержит <div id='qunit-fixture', где должны быть ваши тестовые данные.

До сих пор я хорошо провел время с тестированием QUnit на чистом JS, который полностью отделен от пользовательского интерфейса,модульные тесты также помогают с разделением.

Однако, для чего-то более связанного с пользовательским интерфейсом, вы можете посмотреть, как JQuery UI использует QUnit.См. модульные тесты аккордеонного виджета

...