Gibt es eine Möglichkeit, einen Controller zu testen, der einen Filter für einen Integrationstest verwendet?Grails Integrationstestfilter
Es scheint eine Möglichkeit zu geben, die @Mock-Annotation für Komponententests zu verwenden und den Controlleraufruf mit einem withFilter-Abschluss zu versehen.
Aber ich kann Filter auf einem Integrationstest nicht bekommen, der von meinem pov sehr geradlinig sein sollte.
aktualisieren
So, hier ist die Lösung, die ich gefunden. Anstatt die Annotation @Mock zu verwenden, habe ich die FilterUnitTestMixin-Klasse instanziiert und mit den erforderlichen Werten gefüllt.
public class ControllerTest {
def controller = new Controller()
FiltersUnitTestMixin f = new FiltersUnitTestMixin()
@Before
public void setup() {
f.grailsApplication = grailsApplication
f.applicationContext = grailsApplication.mainContext
f.mockFilters(ControllerFilters)
}
@Test
public void shouldPassTheTest() {
f.withFilters(action:"actionName") {
controller.actionName()
}
}
}