Rails 3 - рендеринг макетов портит тесты - PullRequest
0 голосов
/ 27 ноября 2010

Я определяю функцию с именем location на wsp_controller:

  def location
    @title ="Edit account"
    @page_name = "edit"
  end

И она отлично работает.Но когда я пытаюсь отобразить компоновку, как это:

  def location
    @title ="Edit account"
    @page_name = "edit"
    render :layout => 'signup_login' 
  end

Тесты RSpec начинают давать сбой.Тем не менее, приложение делает то, что предполагается, но тесты не пройдены.У меня есть код javascript в макете, который мне нужно запускать при переходе в / location, если я добавляю javascript в макет приложения, он работает (тесты и приложение), однако нет необходимости помещать его туда, поэтому я хочуновый макет и рендеринг.

Как я могу это сделать?

Редактировать: Вот что у меня есть в маршрутах.rb

  match '/wsps/:id/location', :to =>'wsps#location'

Спасибо.

Редактировать:

Некоторые из ошибок RSpec:

    Failures:
  1) WspsController GET 'index' for non-signed-in wsps should deny access to 'index'
     Failure/Error: get :index
     You have a nil object when you didn't expect it!
     You might have expected an instance of ActiveRecord::Base.
     The error occurred while evaluating nil.errors

Это просто не проходит тесты, когда я рендерим макет.Но только в этом методе.

1 Ответ

0 голосов
/ 27 ноября 2010

Возможно, вам потребуется предоставить немного больше информации о сбоях, которые вы получаете.Вы упоминаете, что у вас есть Javascript, который должен работать при визуализации страницы?Не забывайте, что в ваших функциональных тестах страница отображается как html, но в ней не используется настоящий браузер, поэтому javascript не запускается.Для тестов, включающих javascript, вы должны посмотреть на что-то вроде Cucumber, чтобы определить некоторые приемочные тесты, в сочетании с чем-то вроде Watir или Selenium для управления браузером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...