问题
Used in automatically generated tests:
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 doesn't have any description. What's the purpose of this method and how to use it?
回答1:
It means if a controller defined an instance variable @item="something"
.
You can fetch an instance variable in your test with e.g.:
# It will check if the instance variable is a string.
assert_kind_of String, assigns(:item)
回答2:
Be aware assigns
deprecated in Rails 5. And extracted to separate gem.
To use it you must include 'rails-controller-testing' to your gemfile.
来源:https://stackoverflow.com/questions/27214443/whats-the-purpose-of-assigns-method-in-rails-tests-minitest