失败:预期 0 在 rails 上的 ruby 上 >= 1

Failure: Expected 0 to be >= 1 on ruby on rails

我正在做 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"

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

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

我 运行 遇到过同样的问题。我所做的是在 application.html.erb 文件的 <title> 标签末尾取下 | Ruby on Rails Tutorial Sample App 部分。希望这对您有所帮助!

我遇到了同样的问题,三个失败,回家,关于和帮助。

原来是static_pages/home(关于&帮助)中的一个简单的错字。html.erb 我拼错了 "Tutorial" 并将同样的错误复制粘贴到每个 html.erb 中。 更正错字并重新 运行 rails 测试。 成功:)

我 运行 也遇到过同样的问题。它来自教程的 html 个视图中的 copy/paste 个。

即使您的视图和测试之间的文本相同,如果您 copy/paste 来自 Rails 教程,您应该 re-write 视图中标题标签之间的文本(主页、关于、帮助等)你自己和文本应该通过。希望这个帮助,它通过了这个。

我正在使用 vim。不知道有没有关系。

将此 <% provide(:title, "Home") %> 放入 static_pages/(home/about/contact).html.erb 文件中。我希望这能解决你的问题