2010-05-12 12 views
6

Ich möchte eine Post-Anforderung an einen anderen Controller in meinem Funktionstest, der für einen bestimmten Controller vorgesehen ist. Die Post-Methode in der ActiveController-Klasse benötigt jedoch nur die Methode, die aufgerufen werden soll. Der Name des Controllers wird nicht aufgerufen. Irgendwelche Ideen, wie man einen anderen Controller aufruft?So rufen Sie einen anderen Beitrag in einem anderen Controller in Rails Functional Test

+0

Warum genau versuchen Sie, einen separaten Controller in einem Funktionstest aufzurufen? Es könnte einen besseren Weg geben, um das zu erreichen, was Sie wollen. – Pete

+0

Also die Funktionalität, die ich versuche zu testen, beinhaltet zwei Controller. Soll ich anstelle eines Funktionstests einen Integrationstest verwenden? – Snehal

Antwort

4

Wenn Sie Tests für Controller erstellen, die ActiveSupport::TestCase verwenden, können Sie festlegen, welcher Controller getestet werden soll, wenn er nicht abgelesen werden soll.

So können Sie Ihrem Test eine weitere Klasse für den aktuellen Controller hinzufügen, den Controller für den Test innerhalb der neuen Klasse festlegen und Ihre Testfälle implementieren.

Sie hat keine Code, so kann ich nicht eine codierte Lösung bieten, aber hier ist ein Blog-Post über alle Methoden auf Controller unter RSpec Prüfung: http://blog.wolfman.com/articles/2007/7/28/rspec-testing-all-actions-of-a-controller

[persönlich von RSpec/Testunit für Controller, ich weggezogen Tests jenseits von Routenprüfungen und Fuzzy-Tests. Ich bevorzuge Integrationstest (z. B. Gurke) für etwas, das mehrere Teile des Systems beteiligt.]

Verwandte Themen