【问题标题】:Rails 5 testing POST requestRails 5 测试 POST 请求
【发布时间】:2017-06-18 21:24:13
【问题描述】:

我有这个测试:

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 运行它时,我看到了这个错误:

错误:UsersSignupTest#test_invalid_signup:ArgumentError:未知 关键词:用户 test/integration/users_signup_test.rb:9:in 块(2 级) in ' test/integration/users_signup_test.rb:8:in block in '

如何为POST方法传递数据?

【问题讨论】:

    标签: ruby-on-rails ruby tdd integration-testing


    【解决方案1】:

    这是您应该复制的代码:

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

    键值对params: some_hashpost() 的第二个参数——不是键值对user: some_hash

    params 哈希是 Rails 中一个非常重要的概念。

    【讨论】:

      猜你喜欢
      • 2020-03-26
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-12
      • 2018-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多