我正在阅读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
答案 0 :(得分:3)
它如何知道get:home指的是哪里?
Rails做了很多魔法,其中一些魔法属于convention over configuration类别。
在这种情况下,此测试类的名称为StaticPagesControllerTest
的事实告诉测试套件它正在测试StaticPagesController
。
以这种方式命名测试是标准的rails 约定。您可以在技术上配置任何测试以查看您想要的任何控制器或操作,但遵循此约定有许多好处(另一个讨论)。
当您告诉get :home
时,它正在名为get
的控制器操作上使用:home
http method。
另外,assert_response是机架测试还是轨道测试?
它询问收到的状态代码。在这种情况下,它正在检查状态代码是否为200
。