Тестирование приложения Node.js с Zombie
Я пишу приложение node.js в coffee-script, используя экспресс-фреймворк. Изучив пару вариантов, я наконец решил использовать mocha и zombie.js. Тем не менее, я испытываю тяжелые испытания пользовательского интерфейса. Например, чтобы реализовать успешную аутентификацию пользователя, я делаю следующее: см. Вставленный здесь код my_gist
Что я действительно хотел сделать, это следующее:
- вызов
get '/sessions/new'
, который вызовет SessionsController и отобразит форму аутентификации - тогда я позвоню
browser.visit
метод, введите значения для полей и отправьте форму, которая сгенерирует метод публикации если имя пользователя и пароль верны, я ожидаю, что SessionsController отреагирует соответствующим образом и перенаправит на нужную страницу. К сожалению, всякий раз, когда я запускаю тесты, он жалуется на
Zombie: require is not defined ReferenceError: require is not defined
, Оказывается, ему не нравятся две строки в моем /javascripts/app.jsrequire("coffee-script") require('./tfs.coffee')
Даже когда я пытаюсь извлечь какую-либо информацию из браузера после метода посещения, я просто получаю неопределенные значения. Видимо, ни одно из моих утверждений не проверяется. Это просто проходит тест. Что-то я делаю не так? Кто-нибудь, кто тестировал написанное на кофе-скрипте приложение в экспрессе с использованием Zombie.js, сталкивался с такой проблемой? что может быть исправить?
1 ответ
Если /javascripts/app.js загружается из браузера, вы должны убедиться, что RequireJS (или какая-либо другая структура браузера, которая определяет require
) загружается первым или загружается в ваш HTML-документ:
<script src="coffee-script.js" type="text/javascript"></script>
<script src="tfs.coffee" type="text/coffee"></script>
Возможно, вам придется подождать, пока страница полностью загрузится, прежде чем извлекать значения.