我是 Ruby on Rails 世界的新手。
我注意到至少有一种方法可以从测试用例中访问控制器实例变量。
事实上,假设这个测试方法:
test "should get index" do
get :index
assert_response :success
assert_not_nil assigns(:products)
end
products
是包含在相关控制器中的实例变量。当然,测试用例引用了这个控制器。因此assigns()
方法使用它来检查控制器实例变量的哈希值,从而允许从之前调用此控制器的任何其他文件中访问任何精确对象。
所以我想知道两个问题:
为什么不创建与控制器的“绑定”而不是使用assigns()
方法?
我想象一个可以做到的版本:
test "should get index" do
get :index
assert_response :success
assert_not_nil @products
end
它不会更短更干净吗?
绑定是允许 ERB 文件访问控制器实例变量的机制,如以下链接所示:
http://rrn.dk/rubys-erb-template-system
这种机制不适用于测试用例吗?方法是assigns()
必不可少的吗?