我正在做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"
答案 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文件中。希望这可以解决您的问题