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
Antwort
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.]
- 1. Rufen Sie einen Controller aus einem anderen
- 2. rufen Sie einen Controller in einem anderen Controller Angularjs
- 3. Rufen Sie einen Controller aus einem anderen Controller
- 4. So rufen Sie eine Controller-Funktion in einem anderen Controller in Code-Nummer
- 5. AngularJS rufen einen anderen Controller die Funktion
- 6. So rufen Sie einen Sub aus einem anderen Sub dynamisch
- 7. So rufen Sie einen Selektor in einer anderen Klasse auf
- 8. So rufen Sie Methode von einem Controller zu einem anderen Controller appcelerator
- 9. So verwenden Sie Methoden von einem Controller in einem anderen
- 10. rufen Sie eine Funktion von einem anderen Controller
- 11. Spring MVC: autowiring einen Controller in einem anderen Controller
- 12. Einen Link zu einem anderen Beitrag in Wordpress einfügen
- 13. So rufen Sie die Funktion von einem anderen Skript (AngularJS)
- 14. List ein Objekt in einem anderen Controller
- 15. AJAX Beitrag zu einem anderen funktioniert nicht
- 16. Zugriff auf einen Controller über einen anderen Controller in AngularJs
- 17. eine Aktion in einem anderen Controller
- 18. Rufen Sie aus anderen Thread
- 19. Hochladen in Laravel in einem anderen Controller-
- 20. Rufen Sie einen Controller von einem anderen, ohne es neu zu laden
- 21. Aktion von einem Controller als Filter in einem anderen Controller in Rails verwenden
- 22. Daten von einem Controller in einem anderen Controller abrufen
- 23. Rufen Sie eine Funktion aus einem anderen Paket in Go
- 24. So rufen Sie die Funktion einer Aktivität von einer anderen Aktivität oder einem anderen Dienst auf?
- 25. Wie können Sie in einem Rails-Controller-Test auf eine andere Controller-Aktion zugreifen?
- 26. So rufen Sie Funktionen auf anderen Computern auf?
- 27. Aufrufen einer Controller-Methode in einem anderen Controller Ember
- 28. CakePHP3: mit einem anderen Modell in einem Controller
- 29. Wie überschreibt @RequestMapping in einem anderen Controller?
- 30. Umleiten zu Aktion in einem anderen Controller
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
Also die Funktionalität, die ich versuche zu testen, beinhaltet zwei Controller. Soll ich anstelle eines Funktionstests einen Integrationstest verwenden? – Snehal