失败:在轨道上的ruby上预期0为> = 1

时间:2015-04-29 13:38:09

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

我正在做Hartle教程并且每次运行rake测试时看到这个失败我看到这个失败:

  1) Failure:
StaticPagesControllerTest#test_should_get_help [.../sample_app/test/controllers/static_pages_controller_test.rb:14]:
<Help | Ruby on Rails Tutorial Sample App> expected but was
<Ruby on Rails Tutorial Sample App>..
Expected 0 to be >= 1.

这是什么意思?我该如何解决? 这是我的static_pages_controller_test.rb文件。

require 'test_helper'

class StaticPagesControllerTest < ActionController::TestCase

  test "should get home" do
    get :home
    assert_response :success
    assert_select "title", "Ruby on Rails Tutorial Sample App"   end

  test "should get help" do
    get :help
    assert_response :success
    assert_select "title", "Help | Ruby on Rails Tutorial Sample App"   end

  test "should get about" do
    get :about
    assert_response :success
    assert_select "title", "About | Ruby on Rails Tutorial Sample App"   end

  test "should get contact" do
    get :contact
    assert_response :success
    assert_select "title", "Contact | Ruby on Rails Tutorial Sample App"   end end

这是第14行。

assert_select "title", "Help | Ruby on Rails Tutorial Sample App"

5 个答案:

答案 0 :(得分:4)

问题是没有匹配"Help | Ruby on Rails Tutorial Sample App"的HTML。

如果查看assert_select的定义,它会接受:count作为(可选)参数。如果未指定count,则会将html的最小出现次数设置为1.这就是您获得的错误为Expected 0 to be >= 1.的原因。在你的情况下有0场比赛,测试预计至少有1场比赛。

答案 1 :(得分:1)

我也碰到了同样的问题。它来自教程中html视图的复制/粘贴。

即使您的视图和测试之间的文本相同,如果您从Rails教程中复制/粘贴,您应该在视图(主页,关于,帮助等)中的标题标记之间重写文本并且文本应该通过。希望这有帮助,它随我而去。

我正在使用vim。不知道这是否重要。

答案 2 :(得分:0)

我遇到了同样的问题。我所做的是关闭| Ruby on Rails Tutorial Sample App部分,在<title>文件的application.html.erb标记的末尾。希望这有帮助!

答案 3 :(得分:0)

我遇到了三个失败的问题,主页,关于和帮助。

在static_pages / home(关于&amp; help).html.erb中发现这是一个简单的拼写错误 我有拼错的“教程”,并将同样的错误粘贴到每个html.erb中。 修正了拼写错误并重新进行了轨道测试。 成功:)

答案 4 :(得分:0)

将此<%Provide(:title,“ Home”)%>放入static_pages /(home / about / contact).html.erb文件中。希望这可以解决您的问题