2015-12-24 15 views
8

私は自分のプロジェクトでしばらくの間AssertJを使用しています。最近、私はSpring MVCコントローラをテストするためにSpring MVC Testを使い始めました。Spring MVCテストでAssertJアサーションを使用する方法はありますか?

しかし、私はAssertJをどのように使用するのかを知りません。私がオンラインで見るすべての例では、HamcrestをSpring MVC Testで使用しています。

以下は、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")) 
         ) 
       ))); 

答えて

7

一般的に言えば、Springでテストするときに好きなアサーションフレームワークを選択できます。

しかし、あなたが記述している特定のシナリオには、Spring MVC TestフレームワークのAPIが関係しています。問題のメソッドは、Hamcrest Matcher APIで使用するように設計されています。したがって、これらのメソッド呼び出しでAssertJを使用することはできません。

よろしく、最近MockMvcとAssertJアサーションのサポートを追加することについて議論するSpring Bootプロジェクトに提起問題がありました

関連する問題