我试图弄清楚Hartl的Rails教程的last exercise in Chapter 5,但并不是真正理解它,也不是它努力做到的。我的理由:
它说的是" full_title helper",它指的是我们放在app / controllers / helpers / application_helper.rb中的代码:
def full_title(page_title = '')
base_title = "Ruby on Rails Tutorial Sample App"
if page_title.empty?
base_title
else
"#{page_title} | #{base_title}"
end
end
练习是:
1)通过将行"include ApplicationHelper"
添加到/test/test_helper.rb
2)然后我们可以使用:
扩展test / integration / site_layout_test.rbget signup_path
assert_select "title", full_title("Sign up")
使用full_title方法"注册" as page_title。
但是,此测试不会测试full_title方法中base_title中的拼写错误。
3)作业:通过创建测试助手来解决这个限制" test / helpers / application_helper_test.rb"测试这个。 test / helpers / application_helper_test.rb的解决方案代码:
require 'test_helper'
class ApplicationHelperTest < ActionView::TestCase
test "full title helper" do
assert_equal full_title, "Ruby on Rails Tutorial Sample App"
assert_equal full_title("Help"), "Help | Ruby on Rails Tutorial Sample App"
end
end
至少在我的情况下,结果是上面的完整标题助手测试仅在运行&#34;捆绑exec rake test&#34;时执行。而不是在运行&#34;捆绑exec rake测试:整合&#34;。但是对于运行&#34;捆绑执行rake test&#34;我们已经有一个很好的工作测试,检查每个页面标题;我们之前做过。虽然这个练习想要实现,但我们也在运行时测试页面标题&#34;捆绑exec rake测试:集成&#34;。
我错过了什么?
答案 0 :(得分:0)
我想你什么都没有
因为我在http://guides.rubyonrails.org/testing.html第6节中得到的内容
rake test:integration
只运行test / integration
application_helper_test.rb是与集成测试的不同测试 application_helper_test.rb仅用于测试完整标题帮助方法
答案 1 :(得分:0)
如果您将测试文件保存在test / helpers下,请使用:
rails test:helpers
这将运行该目录中的所有测试。