获取Rails请求规范的“意外令牌”错误

时间:2019-08-28 18:03:25

标签: ruby-on-rails rspec

我有以下请求规范:

ul {
  column-count: 4;
  column-gap: 0;
}
li {
  display: inline-block;
}

运行它,我得到:

  

ActionDispatch :: Http :: Parameters :: ParseError:          767:“ instance [instance_id_string] = abc123&instance [public_hostname] = 0.0.0.0'处出现意外令牌

我不知道我的测试编写方式可能出什么问题。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

内容类型是应用程序/json。您应该强制转换 params 散列到 json。

params = { instance: {
    instance_id_string: 'abc123',
    public_hostname: '0.0.0.0'
}}
post '/api/v1/instances', params: params.to_json, headers: headers

答案 1 :(得分:0)

将我的测试更改为以下工作:

require 'rails_helper'

RSpec.describe 'creating an instance', type: :request do
  it 'creates an instance' do
    params = {
      instance: {
        instance_id_string: 'abc123',
        public_hostname: '0.0.0.0'
      }
    }

    post '/api/v1/instances', params: params

    expect(response.body).to eq('asdf')
  end
end