2017-06-18 4 views
1

J'ai ce test:Rails 5 tests de requête POST

test "invalid signup" do 
    get signup_path 
    assert_no_difference 'User.count' do 
    post users_path, user: { 
     name: '', email: '', password: '', 
     password_confirmation:'' 
    } 
    end 
    assert_template 'users/new' 
end 

mais quand je le lance avec rake test, je vois cette erreur:

Error: UsersSignupTest#test_invalid_signup: ArgumentError: unknown keyword: user test/integration/users_signup_test.rb:9:in block (2 levels) in ' test/integration/users_signup_test.rb:8:in block in '

Comment passer des données pour la méthode POST?

Répondre

2

Voici le code que vous étiez censé copier:

assert_no_difference 'User.count' do 
    post users_path, params: { user: { name: "", 
            email: "[email protected]", 
            password:    "foo", 
            password_confirmation: "bar" } } 
end 

La valeur-clé paire params: some_hash est le second argument de post() --not la valeur paire de clés user: some_hash.

Le hachage params est un concept assez important dans les rails.