RSpec:测试控制器中的创建操作方法
问题描述:
我已经为控制器中的创建操作方法编写了RSpec测试。现在我成为了以下错误: error ScreenRSpec:测试控制器中的创建操作方法
我的测试:
describe '#create' do
before(:each) {
@address = {
attributes: {
'street': "bla",
'street-number': 2,
'zip': "12345",
'city': "blabla",
'country': ''
},
type: "addresses"
}
}
it 'test the create route' do
post 'create', { params: @address }
end
end
我控制器的方法:
public def create
action(Address::Create)
.otherwise('address_create_error', 401)
.then_render(Address::Representer::Out::Default)
end
而且我厂:
FactoryGirl.define do
factory :address do
street 'Musterstraße'
street_number '1'
zip '12345'
city 'Musterstadt'
country ''
end
end
我不知道为什么这个错误来了。有人能帮助我吗?
答
今天我已经解决了这个问题。为了解决这个问题,我必须调整两件事情。
- 的JSON必须完全作为字符串
- 它必须在请求的主体中发送,而不是作为一个PARAM被传送。那是因为我们特殊的环境。
无论如何感谢您的帮助。 :)
答
尝试使用 “=>” 语法
@address = {
'attributes' => {
'street' => "bla",
'street-number' => 2,
'zip' => "12345",
'city' => "blabla",
'country': ''
},
'type' => "addresses"
}
什么在地址:: Representer :: Out ::默认和地址::创建?你为什么要定义工厂的地址,但不使用它?你应该粘贴完整的错误信息,绝对不是截图。 – arieljuod