2017-10-18 153 views
-1

我已經爲控制器中的創建操作方法編寫了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 

我不知道爲什麼這個錯誤來了。有人能幫助我嗎?

+0

什麼在地址:: Representer :: Out ::默認和地址::創建?你爲什麼要定義工廠的地址,但不使用它?你應該粘貼完整的錯誤信息,絕對不是截圖。 – arieljuod

回答

0

今天我已經解決了這個問題。爲了解決這個問題,我必須調整兩件事情。

  1. 的JSON必須完全作爲字符串
  2. 它必須在請求的主體中發送,而不是作爲一個PARAM被傳送。那是因爲我們特殊的環境。

無論如何感謝您的幫助。 :)

0

嘗試使用 「=>」 語法

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