2017-06-18 58 views
1

我有这样的测试:Rails的5测试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 

但是当我rake test运行它,我看到这个错误:

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 '

如何通过数据POST方法?

回答

2

下面是你应该复制代码:

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

的键值对params: some_hash是第二个参数post() --not的键值对user: some_hash

params散列是一个非常重要的概念在rails中。