2016-09-30 13 views
0

私は春のブートにはとても新しく、春のブートでテストを行う方法を学びたいと思っています。アプリケーションの統合テストに役立つ@SpringBootTestアノテーションについて読んでいます。私は単体テストが春のブートでどのように行われるべきなのか疑問に思いました。単体テストで@SpringBootTestアノテーションを指定する必要があるのですか、それとも統合テストにのみ使用されるのでしょうか?ユニットテストに使用するアノテーションがありますか?春のブートでのユニットテスト

いずれのポインタも大歓迎です。前もって感謝します!

編集: SpringBootTest注釈は統合テストにのみ使用されますか?

@RunWith(SpringRunner.class) 
@SpringBootTest 
@AutoConfigureMockMvc 
public class HelloControllerTest { 

@Autowired 
private MockMvc mvc; 

@Test 
public void getHello() throws Exception { 
    mvc.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON)) 
      .andExpect(status().isOk()) 
      .andExpect(content().string(equalTo("Greetings from Spring Boot!"))); 
} 
} 

これはユニットテストか統合テストですか?私の推測は、MockMvcを使用しているので、統合テストではありません。そうですか?もしそうなら、@ FlringBootTestアノテーションは本格的な統合テストではないテストに使用できますか?

+0

単体テストに特別な作業は必要ありません。テスト中のコンポーネントを作成するのに 'new'を使用してください。 –

+0

@JBNizetによると、Spring Bootアプリケーションでクラスを単体テストするのに特別なことは必要ありません。 Springブートを使用していない場合のやり方と同じように、テストクラスをコーディングして実行してください。 **しかし、あなたが知りたいのは、エンドポイント**へのHTTPコールのテストを行う方法(ユニットテストではなく統合テスト)です。あなたのポストでそう言いなさい。 – walen

+0

応答ありがとう、私はSpring Bootが非常に高度な統合テスト機能を提供していることを認識しています。 Spring Bootは、アプリケーションの個々のコンポーネントをテストできるスライステスト機能を提供することを理解しています。例えば、 WebMvcTestアノテーションを使用してコントローラ部分をテストすることができます。これは単体テストと考えることができますか? – Reshma

答えて

0

厳密に言えば、「ユニット」テストではSpringを使用すべきではありません。通常どおりJUnit/TestNG/Spock /を使用して個々のクラスをテストしてください。 @SpringBootTestは統合のためのもので、それを越えたテストです。

関連する問題