简体   繁体   English

Rails 5测试POST请求

[英]Rails 5 testing POST request

I have this test: 我有这个测试:

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

but when I run it with rake test , I see this error: 但是当我用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 ' 错误:UsersSignupTest#test_invalid_signup:自变量错误:未知关键字:用户测试/集成/users_signup_test.rb:9:在“测试/集成/users_signup_test.rb:8:在”的块中(2级)

How to pass data for POST method ? 如何为POST方法传递数据?

Here is the code that you were supposed to copy: 这是您应该复制的代码:

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

The key-value pair params: some_hash is the second argument to post() --not the key-value pair user: some_hash . 键值对params: some_hashpost()的第二个参数-不是键值对user: some_hash

The params hash is a pretty important concept in rails. params散列是Rails中一个非常重要的概念。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM