Ich habe eine App angenommen, die einige Testabdeckung hat, aber die meisten Tests sind von unterschiedlicher Qualität. Der Großteil der App arbeitet gegen eine JSON-API. Ich wollte Request Specs schreiben, aber das Authentifizieren und Senden von POSTs mit den Authentifizierungsdaten war nicht trivial. Zum Testen einer JSON-API wären Controller-Spezifikationen besser geeignet?rspec integration/Anfrage Spezifikationen vs Controller-Spezifikationen mit einem Schwerpunkt auf JSON api
Zum Beispiel
match 'api/login-mobile' => 'api#login_mobile', :as => :login_mobile, :defaults => {:format => 'json' }
Dies scheint trivial zu sein, um zu bekommen, aber würde eine Integration spec mit Capybara erfordern. Darüber hinaus würde, Capybara nicht Sitzungsdaten nativ senden und
page.driver.post .....
erfordern würde ich Integrationstests für die Prüfung UI-Interaktionen erhalten, aber es scheint wie ein wirklich schlechtes Modell für einen JSON-api zu testen. Fehle ich etwas? Oder gibt es ein Tutorial für die Durchführung von Integrations-/Requeset-Tests? Ich schaue Diskurs gerade jetzt und so ziemlich alle ihre Tests sind Controller .... wenn Integration/Anfrage Spezifikationen waren die Bienen Knie, warum sollten sie diese Entscheidung treffen?
thx im Voraus
[Verwenden Sie Capybara nicht zum Testen der API] (https://www.varvet.com/blog/capybara-and-testing-apis/). –
Re: Ihre erste Frage, "zum Testen einer JSON API würde Controller-Spezifikationen besser geeignet sein?" Es hängt davon ab, was Sie testen? Testen Sie Controller-Funktionen (zurückgegebener HTTP-Status, Weiterleitungen, model.count-Änderungen), JSON-Inhalt oder übergreifende Dinge wie Authentifizierung/Autorisierung? – Midwire