2016-08-25 120 views
0

剛剛開始學習RSpec和TDD,並不能找出爲什麼它根本不工作。錯誤RSpec,而測試API

#spec/api/event_api_spec.rb 
 
describe 'Messages API' do 
 
    it 'check response' do 
 
    get 'api.mydomain.dev/events' 
 
    json = JSON.parse(response.body) 
 
    # test for the 200 status-code 
 
    expect(response).to be_success 
 
    end 
 
end

我已創建我的api.mydomain.dev API和我的文件夾結構看起來像應用程序/控制器/ API/events_controller.rb

所以,當我試圖運行包EXEC rspec的它表明

NoMethodError: 
    undefined method `get' for #<RSpec::ExampleGroups::MessagesAPI:0x007fc34900cee0> 

,如果我試圖讓水木清華像Event.creat!(:名稱=>「我的活動」)在我的規格文件#規格/ API/event_api_spec.rb它說

NameError: uninitialized constant Event

,所以我不明白怎麼要求我的應用程序/控制器/ API/events_controller.rb文件的規格文件讓我的事件類的實例來得到它的工作。

在默認控制器它的做工精細,我只是在API設置有趣,THX

回答

0

「得到」是控制器的規格提供的方法,嘗試用類似

describe 'Messages API', type: :controller do 

告訴rspec的你測試有點像控制器,或者只是做

describe EventsController do 

關於「未初始化的常數事件」,試圖用這種在規格/ API/event_api_sp的begning ec.rb

require 'rails_helper' 

希望這會有所幫助,但你的文章是有點混亂,目前尚不清楚,如果你的API是在網上還是什麼,你不應該測試agains網上API,你應該在本地測試,規格應除非真的有必要,否則不要與真實世界溝通。