Rails minitest get:index的语法

时间:2015-01-23 15:44:54

标签: ruby-on-rails minitest

我正在阅读Hartl教程,我对这是否是正确的语法有疑问。 rails如何知道要查看的控制器?我有10个控制器,我正在为静态页面控制器编写测试。怎么知道得到什么:家指的是哪里?它是否在关联的控制器中查找文件名?或者看路线?

另外,assert_response是机架测试还是轨道测试?

require 'test_helper'

class StaticPagesControllerTest < ActionController::TestCase

  test "should get home" do
    get :home
    assert_response :success
  end

  test "should get help" do
    get :help
    assert_response :success
  end
end

1 个答案:

答案 0 :(得分:3)

  

它如何知道get:home指的是哪里?

Rails做了很多魔法,其中一些魔法属于convention over configuration类别。

在这种情况下,此测试类的名称为StaticPagesControllerTest的事实告诉测试套件它正在测试StaticPagesController

以这种方式命名测试是标准的rails 约定。您可以在技术上配置任何测试以查看您想要的任何控制器或操作,但遵循此约定有许多好处(另一个讨论)。

当您告诉get :home时,它正在名为get的控制器操作上使用:home http method

  

另外,assert_response是机架测试还是轨道测试?

它询问收到的状态代码。在这种情况下,它正在检查状态代码是否为200

其他信息:http://api.rubyonrails.org/classes/ActionDispatch/Assertions/ResponseAssertions.html#method-i-assert_response