RSpec标题测试失败,变量为full_title,但是传递了字符串文本变量full_title提供给标题

时间:2012-05-07 23:13:49

标签: rspec railstutorial.org

我正在经历Chapter 5 of RailsTutorial.org

我有一项测试,无论我做什么,我都无法上班。它在我输入变量传递的字符串时传递,但是当我放入变量本身时不会传递。

错误显示未定义的方法'full_title'(在输入相关问题30分钟后我无法找到答案。)

进行表面测试,所需内容显示在应用中,标题中包含“注册”的完整标题。

这是我的代码:

require 'spec_helper'

describe "User pages" do

  subject { page }

  describe "signup page" do
      before { visit signup_path }
      it { should have_selector('h1', text: 'Sign up') }
      it { should have_selector('title', text: full_title('Sign up')) }
  end
end

这是错误显示未定义方法'full_title'

当我使用此代码时它会通过:

require 'spec_helper'

describe "User pages" do

  subject { page }

  describe "signup page" do
      before { visit signup_path }
      it { should have_selector('h1', text: 'Sign up') }
      it { should have_selector('title', text: 'Ruby on Rails Tutorial Sample App | Sign up') }
  end
end

感谢您的帮助! 亚当

5 个答案:

答案 0 :(得分:11)

重新启动Guard可以解决问题。

答案 1 :(得分:7)

要使full_title测试有效,请务必从Listing 5.26

创建spec/support/utilities.rb

我偶然跳过它,因为它看起来与第3章中的重复方法完全相同。

答案 2 :(得分:6)

我遇到了同样的问题,这就是我解决它的方法。确保文件/spec/support/utilities.rb包含以下代码:

include ApplicationHelper

这将解决您的问题。

答案 3 :(得分:1)

如果写:config.include ApplicationHelper 到spec_helper.rb一切都会正常工作,但那一刻我没有看到逻辑将文件utilities.rb转换为spec / support(一切都可以正常工作)

答案 4 :(得分:0)

我遇到了完全相同的问题...除了将头撞到墙上20分钟后,我终于看到了什么问题:我将rspec/support文件夹命名为suppport。难怪spec_helper.rb无法找到它。 *捂脸*