【发布时间】:2016-01-13 06:24:06
【问题描述】:
我已经定义了一个控制器添加。在控制器中我定义了一个函数(add_params)
def add_values
ans = params[:first_element] + params[:second_element]
render :json => {:result => ans}.to_json
end
在路由文件中我声明了post :add_params
如果我打电话给curl -X POST -H "Content-Type:application/json" -d '{"first_element" : 3, "second_element" :2}' http://localhost:8000/add/add_values,它会返回{"result":5}
但是当我尝试在 Rspec 中作为
进行测试时describe AddController, :type => :request do
it "must return 5" do
post "http://localhost:8000/add/add_values", {"first_element" : 3, "second_element" :2}.to_json
expect(JSON.parse(response.body)["result"]).to eq "5"
end
end
它给出了错误
Failure/Error: expect(response["result_is"]).to eq 5
expected: 5
got: nil
(compared using ==)
# ./spec/controller/add_controller_spec.rb:67:in `block (2 levels) in <top (required)>'
我正在使用 rails 3.2.16、ruby 2.1.5、rspec 3.0.0
【问题讨论】:
标签: ruby-on-rails json post rspec