2017-11-29 13 views
0

私たちはちょっとだけ単体テストのテストをしました。 データベースサーバーが接続されていないか、到達できない場合はどうなるでしょうか。私たちはすでにテストコードを書いていますが、サーバーが接続されていない場合、模倣することはできません。UnitTesting JavaでのSQLデータベース

@Test 
public void databaseIsNotRunning() throws Exception { 
    mockMvc.perform(get("/heartbeat")) 
      .andExpect(status().is5xxServerError()) 
      .andExpect(MockMvcResultMatchers.jsonPath("$.application-status").value("ok")) 
      .andExpect(MockMvcResultMatchers.jsonPath("$.database-status").value("error")) 
      .andExpect(content().contentType(contentType)); 
} 
それと間違っている何

、または行方不明:ここ

は、私たちの現在のテストコードのですか? 誰かまたは誰かが助けてもらえますか?

答えて

0

この動作をテストする場合は、このシナリオの統合テストを作成する必要があります。ユニットテストでは、特定のクラスをUnitとしてテストしたいだけです。

ユニットテストでできることは、データベースに到達できない場合にスローされる例外をスローするようにサービスレイヤの結果をカスタマイズしたことです。たとえば、 (ところで非常に非常に単純な例):このため

@Test 
public void testErrorInServiceWhileFetchingData() { 

    when(myService.getData()).doThrow(new RuntimeException("Database not reachable")); 

    // perform the controller call with MockMvc 

} 

あなたはMockitoでオブジェクトをからかっでいくつかの経験を必要としています。 Springとの統合テストの詳細については、素晴らしいドキュメントをご覧ください。

関連する問題