RSpec: 测试控制器中的创建操作方法

RSpec: Test a create action method in controller

我已经为控制器中的创建操作方法编写了 RSpec 测试。现在我变成了以下错误: error Screen

我的测试:

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

我不知道为什么会出现这个错误。有人可以帮助我吗?

尝试使用“=>”语法

 @address = {
    'attributes' => {
      'street' => "bla",
      'street-number' => 2,
      'zip' => "12345",
      'city' => "blabla",
      'country': ''
    },
    'type' => "addresses"
  }

我今天已经解决了这个问题。为了解决这个问题,我不得不调整两件事。

  1. JSON必须作为字符串完整传输
  2. 它必须在请求正文中发送,而不是作为参数发送。那是因为我们特殊的环境。

谢谢你的帮助。 :)