2015-12-24 6 views
8

Ich benutze AssertJ seit einiger Zeit in meinen Projekten. Vor kurzem habe ich Spring MVC Test zum Testen von Spring MVC Controllern verwendet.Gibt es eine Möglichkeit AssertJ Assertions mit Spring MVC Test zu verwenden?

Aber ich bekomme nicht, wie man AssertJ damit benutzt. Alle Beispiele, die ich online sehe, verwenden Hamcrest mit Spring MVC Test.

Unten finden Sie ein Beispiel mit der Hamcrest-API.

mockMvc 
       .perform(get("/user?operation=userList")) 
       .andExpect(status().isOk()) 
       .andExpect(model().attribute(UserController.MODEL_ATTRIBUTE_USER_LIST, userList)) 
       .andExpect(view().name(UserController.VIEW_USER_LIST)) 
       .andExpect(model().attribute(UserController.MODEL_ATTRIBUTE_USER_LIST, hasSize(2))) 
       .andExpect(model().attribute(UserController.MODEL_ATTRIBUTE_USER_LIST, hasItem(
         allOf(
           hasProperty("id", is(1L)), 
           hasProperty("description", is("Lorem ipsum")), 
           hasProperty("title", is("Foo")) 
         ) 
       ))) 
       .andExpect(model().attribute(UserController.MODEL_ATTRIBUTE_USER_LIST, hasItem(
         allOf(
           hasProperty("id", is(2L)), 
           hasProperty("description", is("Lorem ipsum")), 
           hasProperty("title", is("Bar")) 
         ) 
       ))); 

Antwort

7

Generell Sie, was Behauptung Rahmen wählen, die Sie mögen, wenn sie mit Frühling zu testen.

Das spezielle Szenario, das Sie beschreiben, umfasst jedoch die API des Spring MVC Test-Frameworks. Die fraglichen Methoden sind so konzipiert, dass sie mit der Hamcrest Matcher API verwendet werden können. Es ist daher nicht möglich, AssertJ innerhalb dieser Methodenaufrufe zu verwenden.

Grüße,

Sam (Autor des Frühlings Testcontext Rahmen)

Verwandte Themen