アナログを使用して春ブーツMockMvcオブジェクトは、コントローラを呼び出します

  機能実現の後、我々はマイクロサービスアーキテクチャにおいて特に重要である単体テストを支援書かれた手の習慣を養う必要があります。我々はマイクロサービスアーキテクチャを実装する場合、通常、インフラプロジェクトと展開の分離の終了の前と後に達成されています。バックエンドサービスを実装する際に、開発及びこれらのユニットのテスト中に非常に優れた手段の正当性を検証するために使用されたユニットテストコードはよくあるかもしれない、私たちの将来の再構築によってサポートされます。

 

  ライトコントローラ

パッケージcom.xc.springboot.controller。

輸入org.springframework.web.bind.annotation.RequestMapping。
輸入org.springframework.web.bind.annotation.RestController。

@RestController 
パブリック クラスHelloController { 

    / ** 
     * http://127.0.0.1 :8081 /ハロー
      * / 
    @RequestMapping( "/ハロー" のパブリック文字列のhello(){
         リターンの"Hello World!" ; 
    } 

}

 

  SRCの下でテストクラスを書く/テスト/

パッケージcom.xc.springboot.controller。

輸入org.junit.Before;
輸入org.junit.Test;
輸入org.junit.runner.RunWith;
輸入org.springframework.http.MediaType。
輸入org.springframework.test.context.junit4.SpringJUnit4ClassRunner。
輸入org.springframework.test.context.web.WebAppConfiguration。
輸入org.springframework.test.web.servlet.MockMvc;
輸入org.springframework.test.web.servlet.request.MockMvcRequestBuilders。
輸入org.springframework.test.web.servlet.setup.MockMvcBuilders。

// 引入下面的静态引用、让状況、コンテンツ、equalTo函数可用
インポート 静的org.hamcrest.Matchers.equalTo;
 インポート 静的org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
 インポート 静的org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; 

@RunWith(SpringJUnit4ClassRunner。クラス// 春のJUnit4のサポートが導入されました。
// @SpringApplicationConfiguration(クラス= SpringbootApplication.class)// 春ブーツのクラスを開始する指定。
@WebAppConfiguration // アナログのServletContextのためのWebアプリケーションの開いた構成、。
パブリック クラスHelloControllerTest { 

    プライベートMockMvc MVC; 

    //・@の前に:実行@Testコンテンツプリロードされたコンテンツの前に定義されたJUnitテストケースのためにここにシミュレーションHelloControllerを初期化します。
    @Before
     公共 のボイドのsetUp()がスロー例外{ 
        MVC = MockMvcBuilders.standaloneSetup(新新()内HelloController)(ビルド);. 
    } 

    @Test 
    公共 のボイドのHello()がスロー例外{ 

        // アナログインタフェースコントローラは、呼び出し:・MockMvcオブジェクトを通話要求が受信されたデータの種類を受け入れ実行するため、関数を実行し、定義された@Testハロー試験において、要求を実行開始、andExpect返さインタフェースを決定するための値を期待しました。
        mvc.perform(MockMvcRequestBuilders.get( "/こんにちは" ).accept(MediaType.APPLICATION_JSON)) 
                .andExpect(ステータス()。ISOK())
                .andExpect(コンテンツ()文字列(equalTo( "Hello Worldの!" ))); 
    } 


}

 

  コードは次のように解釈されます。

  ・@ RunWith(SpringJUnit4ClassRunner.class):JUnit4の導入のためのSpringのサポート。

  ・@ SpringApplicationConfiguration(クラス= SpringbootApplication.classは):春のブート起動クラスを指定します。

  ・@ WebAppConfiguration:シミュレーションのServletContextのための設定Webアプリケーションを開きます。

  ・MockMvcオブジェクト:アナログインタフェースコントローラ通話開始要求、定義@Testハローのテストケース、受信したデータ、返されたインタフェースを決定するためのandExpect期待値の種類を受け入れ実行するため、関数が呼び出し要求を行う実行します。

  ・@の前に:実行@Testコンテンツプリロードされたコンテンツの前に定義されたJUnitテストケースのためにここにシミュレーションHelloControllerを初期化します。

  次の静的参照の導入、その結果、ステータス、コンテンツなお、equalTo機能が利用可能です。

輸入 静的org.hamcrest.Matchers.equalTo。
輸入 静的org.springframework.test.web.servlet.result.MockMvcResultMatchers.content。
輸入 静的 org.springframework.test.web.servlet.result.MockMvcResultMatchers.status。

 

版本:春・ブート・スターター・親1.5.21.RELEASE

参考:春クラウドmicroService戦闘P51

 

おすすめ

転載: www.cnblogs.com/ooo0/p/11220458.html