首页 > 解决方案 > 将 Rspec 控制器测试从 Rails 4.2.10 迁移到 Rails 5.1.4 的问题

问题描述

旧 Rails 4.2.10 行:

post :show, "Some XML as String"

到 Rails 5.1.4

post :show, params: { ??? }

那么我在这里添加的键值对是什么?

编辑:所以目前在测试中它是这样写的:

let(:logout_request_xml) { "<soap-env:Envelope xmlns:soap-env='http://schemas.xmlsoap.org/soap/envelope/'><soap-env:Body>...more stuff...</soap-env:Body></soap-env:Envelope>" }
...
post :show, logout_request_xml

标签: ruby-on-railsruby-on-rails-4rspecruby-on-rails-5

解决方案


在 Rails 5.2.2 中,以上答案都不适用于我。

@request.env['RAW_POST_DATA'] = json在某些需要特殊类型的序列化的情况下,我在 5.1 中使用这样的代码,我将所有这些转换为:

json = { "some" => "JSON" }.to_json
post :show, body: json

推荐阅读