Wenn ich zu localhost gehe: 3000/api/Gäste/1 Ich bekomme meine Show-Seite, aber wenn ich die Spezifikation ausführen, ist es nicht bestanden.Route Spec nicht passieren, aber Route funktioniert
Hier ist mein spec:
it 'the resource is under the correct namespace' do
get '/api/guests/1'
expect(response).to be_success
end
mein routes.rb hier:
Rails.application.routes.draw do
namespace :api, defaults: { format: :json } do
resources :gifts, only: :show
resources :guests, only: [:index, :show] do
resources :gifts, only: :index
end
resources :parties, only: [:index, :show]
end
end
Hier Nachricht meiner RSpec failure:
ActiveRecord::RecordNotFound:
Couldn't find Guest with 'id'=1
Ich bin nicht ganz sicher, wo sie suchen für das Problem.
OK, das funktioniert. Meine zweite Spezifikation ist das aber: es 'die Show-Seite zeigt die richtigen Informationen' tun bekommen '/ api/Gäste/1' erwarten (Json ['Name']). Zu eq ('John Smith') erwarten (json ['age']). to eq (45) expect (json ['favorite_color']). zu eq ('Blue') end –
Gibt es etwas, was ich tun muss, um rspec Zugriff auf meine bereits gesetzten zu geben Datenbank? –
Nein, Sie sollten separate DBs haben, und Sie müssen die benötigten Variablen vor jedem Test vorbereiten. Sie sollten einige Blogs über Rspec-Tests und ihre Organisation lesen, wie diese: https://robots.thoughtbot.com/how-we-test-rails-applications. Es gibt viele Möglichkeiten, die benötigte Variable zu initialisieren und wiederzuverwenden, bevor Sie mit den Tests beginnen. –