Ich habe einen benutzerdefinierten Aktionsfilter (Attribut) erstellt, die eine Datenbank trifft. Wie kann ich die Controller-Aktionen testen, indem ich ein Mock-Repository einfüge (so dass es die Datenbank für den Komponententest nicht wirklich trifft), damit der Aktionsfilter verwendet wird?Einheit testen benutzerdefinierte Aktion Filter
0
A
Antwort
0
Ich hatte die gleiche Frage vor ein paar Wochen.
How do I unit test an ActionFilter in ASP.NET MVC?
Am Ende akzeptierte ich, dass ich den Controller ohne den Filter zu testen und testen Sie die Filter selbst.
+0
Danke für die Info, aber es erklärt nicht, wie der Action-Filter mit einem Mock-Repository arbeiten kann, das ich aus dem Komponententest injizieren kann. –
0
Sie können immer StructureMap oder ein anderes Service-Locator-ish-Muster verwenden.
Verwandte Themen
- 1. Benutzerdefinierte Redirect-Aktion Filter Unit Testing
- 2. .net mvc2 benutzerdefinierte HtmlHelper-Erweiterung Einheit testen
- 3. Autorisieren Filter vs Aktion Filter
- 4. Wie testen Sie Einheit?
- 5. Symfony2 Benutzerdefinierte Formulartyp versucht, mit Einheit zu testen
- 6. Android: Einheit Testen eines Dienstes
- 7. Symfony2 benutzerdefinierte radio_widget Einheit Zugang
- 8. Get Benutzername auf Aktion Filter
- 9. ASP.Net MVC Authorization Aktion Filter
- 10. Benutzerdefinierte Aktion erstellen
- 11. Einheit/Automatisiertes Testen in einem Workflow-System
- 12. Wie kann ich Einheit GUI testen?
- 13. Mocking Angular Modulabhängigkeiten in Jasmine Einheit testen
- 14. Testen der Einheit MVC 4 RedirectToAction
- 15. Einheit Testen des AngularJS $ Fenster Service
- 16. Best Practices (Einheit) testen Windows Azure
- 17. Delegat für NSURLSession einrichten und Einheit testen
- 18. Wie Einheit testen eine Python-Version Schalter
- 19. Einheit testen und verspotten die db
- 20. Einheit Testen der Verwendung von Transaction
- 21. Akka Schauspieler Einheit testen mit Scala
- 22. AngularJS-Einheit einen anonymen Controller testen
- 23. testen Filter in Laravel 4
- 24. erweitern KineticJS - benutzerdefinierte Filter
- 25. Einheit testen MVVMLight DispatcherHelper mit Timer funktioniert nicht
- 26. Einheit einen Controller in ASP.NET MVC 2 mit RedirectToAction Testen
- 27. Überspringen Filter auf bestimmte Aktion, wenn Aktion Filter global registriert ist
- 28. Benutzerdefinierte Aktion nach ABPeoplePickerNavigationController ist
- 29. Benutzerdefinierte Aktion wird nicht ausgeführt
- 30. Benutzerdefinierte Django-Admin-Aktion hinzufügen
Ich denke, dass ich einen Basiscontroller mit einer Eigenschaft für das IRepository habe. Der Aktionsfilter kann dann den Controller aus dem Kontext abrufen, ihn in den Basis-Controllertyp umwandeln (vorausgesetzt, der Cast ist erfolgreich) und Zugriff auf das IRepository erhalten. Es kann dann das Repository verwenden, das auf dem Controller festgelegt wurde. Dies ist ein Nachahmer aus einem Komponententest. –
Zwei Dinge, die mich in diesem Zusammenhang betreffen: 1) Wie kann ich sicherstellen, dass der benutzerdefinierte Filter nicht auf einen Controller angewendet wird, der nicht vom Basiscontroller erbt? 2) Ich habe gerade festgestellt, dass der Custom-Action-Filter nicht einmal von einem Komponententest aufgerufen wird, da ich die Aktion direkt als Funktionen z. controller.Index(). Wie kann ich es testen? –