Springbootのユニットテスト

3856 ワード

この文章は【知識林】から
Springbootの開発ではユニットテストがよく使われ、Controllerを書くよりもユニットテストが簡単で便利です.この例のテストは主にユニットテストによって、前の記事「Springbootのカスタムプロファイルおよび読み出しプロファイル」のテストを実現します.

pom.xmlにMaven依存パッケージを導入


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


コアプロファイルの読み込み

application.propertiesプロファイルの内容は次のとおりです.
server.port=9090

test.msg=Hello World Springboot!
  • テストクラス
  • を作成
    すべてのテストクラスはsrc/testディレクトリの下にあり、ここではMyTest.javaファイルを作成します.
    package com.zslin;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.core.env.Environment;
    import org.springframework.test.context.junit4.SpringRunner;
    
    /**
     * Created by   [email protected] on 2016/10/18 11:25.
     */
    @SpringBootTest
    @RunWith(SpringRunner.class)
    public class MyTest {
    
        @Value("${test.msg}")
        private String msg;
    
        @Test
        public void testCoreConfig() {
            System.out.println(msg);
        }
    
        @Autowired
        private Environment env;
    
        @Test
        public void testCoreConfig2() {
            System.out.println(env.getProperty("test.msg"));
        }
    }
    

    に注意
    1、1つの一般クラスを1つのユニットテストクラスにするには、クラス名に@SpringBootTest@RunWith(SpringRunner.class)の2つの注釈を加えるだけでよい.2、試験方法に@Test注記を付ける.testCoreConfigtestCoreConfig2の方法を実行した後、いずれも得ることができる:Hello World Springboot!

    カスタムプロファイルの読み込み

  • プロファイル作成
  • resources/configには、my-web.propertiesという名前のプロファイルが作成されます.内容は次のとおりです.
    web.name=zslin
    web.version=V 1.0
    [email protected]
    
  • プロファイル管理クラス
  • を作成する.
    package com.zslin.config;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    
    /**
     * Created by   [email protected] on 2016/10/18 11:44.
     */
    @ConfigurationProperties(locations = "classpath:config/my-web.properties", prefix = "web")
    @Component
    public class MyConfig {
        private String name;
    
        private String version;
    
        private String author;
    
        public String getAuthor() {
            return author;
        }
    
        public String getName() {
            return name;
        }
    
        public String getVersion() {
            return version;
        }
    
        public void setAuthor(String author) {
            this.author = author;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setVersion(String version) {
            this.version = version;
        }
    }
    

    前のドキュメントと変わらない.
  • テストクラス
  • を作成
    package com.zslin;
    
    import com.zslin.config.MyConfig;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    /**
     * Created by   [email protected] on 2016/10/18 11:44.
     */
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class MyConfigTest {
    
        @Autowired
        private MyConfig myConfig;
    
        @Test
        public void testConfig() {
            System.out.println("webName: "+myConfig.getName()+
                    ", webVersion: "+ myConfig.getVersion()+", webAuthor: "+myConfig.getAuthor());
        }
    }
    
    testConfigを実行すると結果が得られます:webName: zslin, webVersion: V 1.0, webAuthor: [email protected]サンプルコード:https://github.com/zsl131/spring-boot-test/tree/master/study03
    この文章は【知識林】から