Rails 3 - 渲染布局破坏了测试

时间:2010-11-26 23:14:44

标签: ruby-on-rails ruby-on-rails-3

我在wsp_controller上定义了一个名为location的函数:

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

它工作正常。但是当我尝试渲染这样的布局时:

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

RSpec测试开始失败。然而,应用程序做了所谓的但测试失败。 我在布局中有javascript代码,当我去/位置时我需要运行,如果我把javascripts放在应用程序布局上,它可以工作(测试和应用程序),但是没有必要把它放在那里,所以我想要一个新布局并渲染它。

我该怎么做?

编辑:这是我在routes.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 :(得分:0)

您可能需要提供有关您获得的失败的更多信息。你提到你有javascript需要在页面呈现时运行?不要忘记,在功能测试中,页面呈现为html,但没有使用真正的浏览器,因此不运行javascript。对于涉及javascript的测试,你应该看看像Cucumber这样的东西来定义一些验收测试,结合像Watir或Selenium来驱动浏览器。