knockout.js выходит из браузера и подделывает окно - PullRequest
3 голосов
/ 07 декабря 2011

Я пытаюсь написать модульные тесты для своих моделей представлений, модели представлений сильно зависят от knockout.js.Я также использую js.net для запуска тестов qUnit из Microsoft Runner в Visual Studio.Таким образом, когда тесты не пройдены, я могу отменить сборку.

Я могу запустить простые тесты, но как только я загружаю knockout.js, я получаю «ReferenceError: окно не определено (knockout-1.3.0beta.js, строка 5) "Очевидно, что окно не определено, когда я не запускаю тесты из браузера.Однако я только тестирую модели представления, взаимодействие с окнами не имеет отношения к моим тестам.Могу ли я в любом случае «подделать» или «подделать» окно, чтобы я мог использовать knockout.js в среде без браузера.

Ответы [ 2 ]

0 голосов
/ 16 января 2013

Вы можете использовать комбинацию phantomJS и Jasmine для тестирования моделей вашего вида KnockoutJS. Конечный результат - что-то вроде этого, удивительно, как быстро призрак:

$ phantomjs run_jasmine_test.coffee TestRunner.html
 Starting...

 Finished
 -----------------
 1 spec, 0 failures in 0.013s.

 ConsoleReporter finished

Основные шаги:

  • Используя Жасмин , напишите спецификацию для своего кода
  • Создайте файл для запуска теста, добавьте строки для каждого из ваших спецификационных файлов
  • Запустите phantomJS и дайте ему указание прочитать тестовый запуск.

Для получения более подробной информации и пошаговых инструкций, прочитайте сообщение в блоге Я недавно писал на эту тему.

0 голосов
/ 07 декабря 2011

Я не слишком уверен, есть ли сокращенное решение, но обычно в таких обстоятельствах вам нужен браузер без головы для тестирования. Поскольку Knockoutjs тесно интегрирован с DOM и Events, я ожидаю, что вам понадобится инфраструктура, которая может макетировать всю структуру браузера.

Zombie.js один. Это требует Node.js для установки, но отлично.

...