SpringBoot基礎チュートリアル(14)-テストとの結合

2473 ワード

マイクロサービスのソリューションとして、どのようにテストが不足しているのでしょうか.Spring bootは異なる環境のテストをサポートできるので、あまり言わないで、pomを見てください.
 
            org.springframework.boot
            spring-boot-starter
        

        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
        

Spring-boot-starter-testに含まれるspring bootテストフレームワークに必要な内容は、私たちの古い友达junitなども含まれています.ビジネスコードを見てください
package com.shuqi.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @Value("${env}")
    private String env;

    @RequestMapping("/hello")
    public String hello() {
        return "hello " + env;
    }
}

中の操作は,実行時環境でenvという属性の値を得,controllerのhelloで暴露する.機能は比較的簡単です.テストパッケージのresourcesディレクトリの下の内容を見てください.2つの内容が含まれています.アプリケーション-dev.ymlとアプリケーション-testです.yml.彼らの違いは、中のenvの属性値が異なることです.アプリケーション-dev.ymlのファイル内容はenv: devです.アプリケーション-test.ymlのファイル内容はenv: testです.準備ができているので、私たちのテスト方法を見てください.
package com.shuqi;

import com.shuqi.controller.HelloController;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;

@ActiveProfiles("test")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(ApplicationMain.class)
public class MyTest {

    @Resource
    private HelloController helloController;

    @Test
    public void test() {
        System.out.println(helloController.hello());
    }
}

ActiveProfilesの注記があり、「test」と書くとアプリケーション-testが見つかります.ymlのファイルをプロファイルとして使用すると、プロパティも自然にそのプロパティを取得します.devなら同じ理屈です.実行して結果hello testが表示されます.その後、ActiveProfilesをdevに切り替え、結果hello devが表示されます.このテストで環境テストを切り替えるのは超便利ではないでしょうか.機能も環境も測定した.
次のセクションでは、SpringBoot基礎チュートリアル(15)--rabbitmqとの結合について説明します.
本節プロジェクトソース