ruby-on-rails - 获取 Rails 请求规范的“意外令牌”错误
问题描述
我有以下请求规范:
require 'rails_helper'
RSpec.describe 'creating an instance', type: :request do
it 'creates an instance' do
headers = {
'CONTENT_TYPE' => 'application/json'
}
post '/api/v1/instances', params: {
instance: {
instance_id_string: 'abc123',
public_hostname: '0.0.0.0'
}
}, headers: headers
expect(response.body).to eq('asdf')
end
end
当我运行它时,我得到:
ActionDispatch::Http::Parameters::ParseError: 767: 'instance[instance_id_string]=abc123&instance[public_hostname]=0.0.0.0' 处的意外令牌
我不知道我的测试编写方式可能有什么问题。有任何想法吗?
解决方案
内容类型是应用程序/json。您应该将params hash 转换为 json。
params = { instance: {
instance_id_string: 'abc123',
public_hostname: '0.0.0.0'
}}
post '/api/v1/instances', params: params.to_json, headers: headers
推荐阅读
- sql - 将查询插入三个表
- c# - 在 C# 中“动态”更改静态变量
- selenium - 云服务器实时预览不适用于 Zalenium
- postgresql - 无法使用 ansible 创建 postgres 数据库
- c++ - `const std::string&` 参数的“任何值”
- algorithm - 非均匀圆盘的最佳覆盖
- python - Python - 如何创建家谱树
- python - Python:如何使用 ARCH Lib 的均值模型进行 ARMA(p,q)-GARCH(r,s) 拟合
- ios - 是否可以禁用 UISwitch 的触觉反馈?
- node.js - 在异步函数中迭代 Promise 时内存使用量显着增加