Hartl Rails教程:第5章,练习3

时间:2015-03-18 16:13:48

标签: railstutorial.org

我试图弄清楚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

,在test_helper中包含上述application_helper.rb文件

2)然后我们可以使用:

扩展test / integration / site_layout_test.rb
get 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;。

我错过了什么?

2 个答案:

答案 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

这将运行该目录中的所有测试。