2016-08-25 5 views
0

gerade erst lernen, RSpec und TDD zu lernen, und kann nicht herausfinden, warum es überhaupt nicht funktioniert.Fehler RSpec beim Testen 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

Ich habe meine API auf api.mydomain.dev und meine Ordnerstruktur erstellen sieht aus wie app/controllers/api/events_controller.rb

Also, wenn ich versuchte Bündel zu laufen exec rspec es gezeigt, dass

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

wenn ich versuche, smth wie Event.creat zu machen! (: name => 'My Ereignis') in My spec-Datei # spec/api/event_api_spec.rb es sagt

NameError: uninitialized constant Event

Also ich verstehe nicht, wie erforderlich meine app/controllers/api/events_controller.rb Datei an die Spec-Datei Instanz meiner Ereignisklasse zu bekommen, um es zu arbeiten .

Mit Standard-Controller ist es gut funktionieren, ich nur interessant in API-Setup, thx

Antwort

0

"get" ist ein Verfahren, auf Controller-Spezifikationen verfügbar, versuchen Sie mit so etwas wie

describe 'Messages API', type: :controller do 

rspec zu sagen, Sie sind testen so etwas wie ein Controller, oder vielleicht nur tun

describe EventsController do 

über das „nicht initialisierte konstante Ereignis“, an der begning von spec/api/event_api_sp mit diesem versuchen ec.rb

require 'rails_helper' 

hoffe, das hilft, aber Ihr Beitrag ist ein wenig verwirrend, ist nicht klar, ob Ihr api ist online oder was, Sie sollten nicht agains der Online-api testen, sollten Sie vor Ort testen, Spezifikationen sollten kommuniziere nie mit der realen Welt, es sei denn, es ist wirklich notwendig.