[英]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_hash
是post()
的第二个参数-不是键值对user: some_hash
。
The params
hash is a pretty important concept in rails. params
散列是Rails中一个非常重要的概念。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.