【问题标题】:Rspec Ruby on rails tutorialsRspec Ruby on rails 教程
【发布时间】:2014-04-26 04:25:25
【问题描述】:

expect(page).to have_title

什么是页面,它说 页面 的未定义局部变量/方法?

下面是我看到的错误。

E:\Users\dheeraj\Desktop\rails_projects\sample_app>rspec 规范/ ←[31mF←[0m←[32m.←[0m←[32m.←[0m←[32m.←[0m

失败:

1) StaticPagesController GET 'home' 应该有正确的标题 ←[31mFailure/Error:←[0m ←[31mexpect(page).to have_title("Home")←[0m ←[31mNameError←[0m: ←[31m**未定义的局部变量或方法page' for #<RSpec::Core::Example Group::Nested_1::Nested_1:0x2e70778>←[0m** ←[36m # ./spec/controllers/static_pages_controller_spec.rb:13:in block (3 级) in '←[0m

在 0.21701 秒内完成 ←[31m4 示例,1 次失败←[0m

失败的例子:

←[31mrspec ./spec/controllers/static_pages_controller_spec.rb:11←[0m ←[36m# Stat icPagesController GET 'home' 应该有权限 标题←[0m

使用种子 63847 随机化

请帮助我理解并解决这个问题。

【问题讨论】:

    标签: ruby-on-rails-4 rspec2 railstutorial.org


    【解决方案1】:

    页面被 capybara 用于请求规范。我认为您错误地认为您也可以在控制器规范中使用页面。页面用于确定您当前所在的页面。

    我认为这是您正在寻找的示例规范:

    spec/requests/static_pages_spec.rb

    it "should have the right title" do
      visit '/static_pages/home'
      expect(page).to have_title("Ruby on Rails Tutorial Sample App | Home")
    end
    

    【讨论】:

    • 是的,确实是---------请建议我应该使用什么方法来代替expect(page)进行测试,我使用的是Rails 4?它“应该有正确的标题”访问 '/static_pages/home' expect(page).to have_title("Ruby on Rails Tutorial Sample App | Home") end
    • 您可以在您的请求规范中使用此示例。您要确保显示正确的标题,这意味着您要测试视图的行为。您的控制器规范中的示例可以删除,您不应该在那里使用页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多