在自动生成的测试中使用:
test "should create item" do
login_user
assert_difference('Item.count') do
post :create, item: { creator: @item.creator, title: @item.title, user_id: @item.user_id, text: 'Hello, world!' }
end
assert_redirected_to(assigns(:item))
end
Rails documentation没有任何描述。这种方法的目的是什么以及如何使用它?
这表示控制器是否定义了实例变量@item="something"
。
您可以通过以下方式在测试中获取实例变量:
# It will check if the instance variable is a string.
assert_kind_of String, assigns(:item)
请注意assigns
在Rails 5中已弃用,并提取为单独的gem。要使用它,您必须在gemfile中包含“ rails-controller-testing”。