Ich versuche zu überprüfen, dass eine neue Aktion in meinem RESTful-Controller eine Instanzvariable des erforderlichen Objekttyps einrichten. Scheint ziemlich typisch, aber Schwierigkeiten Ausführung es mitSo testen Sie Instanzvariable wurde in Controller mit RSpec instanziiert
Client-Controller
def new
@client = Client.new
end
-Test
describe "GET 'new'" do
it "should be successful" do
get 'new'
response.should be_success
end
it "should create a new client" do
get 'new'
assigns(:client).should == Client.new
end
end
Ergebnisse in ...
'ClientsController GET 'new' should create a new client' FAILED expected: #, got: # (using ==)
Das ist wahrscheinlich, weil es versucht, 2 Instanzen des aktiven Datensatzes zu vergleichen, die sich unterscheiden. Wie kann ich überprüfen, ob der Controller eine Instanzvariable eingerichtet hat, die eine neue Instanz des Clientmodells enthält?
Wie wäre es, wenn ich mit einem REST arbeite und ich nicht "@" in den Controllern verwende? Gibt es eine Problemumgehung? Danke – Luccas
Funktioniert nicht für Schienen 5. Idiotische ... – asiniy
Verwenden Sie für Schienen 5 'expect (weist (: Client) .to be_a (Client)' – heyitsjhu