Тестирование приложения Node.js с Zombie - PullRequest
1 голос
/ 15 января 2012

Я пишу приложение node.js в coffee-script, используя платформу Express.Изучив пару вариантов, я наконец решил использовать mocha и zombie.js.Тем не менее, у меня есть тяжелое тестирование пользовательского интерфейса.Например, чтобы реализовать успешную аутентификацию пользователя, я делаю следующее: см. Вставленный здесь код my_gist

Что я действительно хотел сделать, это следующее:

  • вызов get '/sessions/new', который вызовет SessionsController и отобразит форму аутентификации
  • , затем я вызову метод browser.visit, введите значения для полей и отправлю форму,который сгенерирует post method
  • , если имя пользователя и пароль верны, я буду ожидать, что SessionsController отреагирует соответствующим образом и перенаправит на нужную страницу,К сожалению, всякий раз, когда я запускаю тесты, он жалуется на Zombie: require is not defined ReferenceError: require is not defined.Оказывается, ему не нравятся две строки в моем /javascripts/app.js

    
    require("coffee-script")
    require('./tfs.coffee')
    

Даже когда я пытаюсь извлечь какую-либо информацию из браузера после метода посещения,Я просто получаю неопределенные значения.Видимо, ни одно из моих утверждений не проверяется.Это просто проходит тест.Что-то я делаю не так?Кто-нибудь, кто тестировал написанное на кофе-скрипте приложение в экспрессе с использованием Zombie.js, сталкивался с такой проблемой?что может быть исправить?

1 Ответ

0 голосов
/ 23 августа 2012

Если /javascripts/app.js загружается из браузера, вы должны убедиться, что RequireJS (или какая-либо другая инфраструктура браузера, которая определяет require) загружается первой, или загружать их в ваш HTML-документ:

<script src="coffee-script.js" type="text/javascript"></script><br> <script src="tfs.coffee" type="text/coffee"></script>

Возможно, вам придется подождать, пока страница полностью загрузится, прежде чем извлекать значения.

...