Rails-Engine: Rake-Routen zeigen ihre Routen, aber bei der Ausführung von rspec wird "No route matches" geworfen

8

Ich versuche, einen Controller zu testen, der sich in einer Engine befindet, die meine Anwendung verwendet. Die Spezifikation ist nicht in der Engine, sondern in der Anwendung selbst (Ich habe versucht, in der Engine zu testen, hatte aber auch Probleme).

Mein Motor hat die folgenden Routen.rb:

%Vor%

Der Motor ist normalerweise auf der Anwendung routes.rb installiert:

%Vor%

Wenn ich rake routes starte, bekomme ich in den letzten Zeilen:

%Vor%

Auf dem Controller meines Motors ( lib/revision/app/controllers/revision/steps_controller.rb ) habe ich:

%Vor%

Bei Rspec teste ich diesen Controller mit:

%Vor%

Wenn ich dann diese Spezifikation ausführe, bekomme ich:

%Vor%

Um sicher zu sein, dass die Route nicht wirklich existiert, habe ich das zur Spezifikation hinzugefügt:

%Vor%

Und das Ergebnis ist das:

%Vor%

Es hat nur den Parameter :action .

Was könnte falsch sein?

    
Carlos Eduardo da Fonseca 18.01.2013, 15:11
quelle

1 Antwort

3

Wenn Sie versuchen, die Controller eines Moduls zu testen, müssen Sie angeben, welche Route für den Controller-Test verwendet werden soll. Andernfalls wird sie für die wichtigsten Apps ausgeführt. Übergeben Sie dazu use_route: :engine_name an die Methode get .

%Vor%     
midu 09.08.2013 22:17
quelle