作為一套微服務(wù)的解決方案着倾,怎么會缺乏測試呢懊直?spring boot 可以支持不同的環(huán)境的測試
話不多說草穆,看下pom
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
spring-boot-starter-test里面包含的spring boot 測試框架中需要的內(nèi)容关贵,還包括我們的老朋友junit等扯饶≡海看下我們的業(yè)務(wù)代碼
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;
}
}
里面的操作是通過運行時環(huán)境中得到env這個屬性的值棉浸,然后通過controller中的hello暴露出去。功能比較簡單刺彩∶灾#看下我們測試包中的resources目錄下的內(nèi)容,包含兩個內(nèi)容application-dev.yml與application-test.yml创倔。他們之間的區(qū)別就是里面的env的屬性值不同嗡害。在application-dev.yml中的文件內(nèi)容是env: dev
。在application-test.yml中的文件內(nèi)容是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的注解,當(dāng)里面寫“test”就會找到application-test.yml的文件作為配置文件知押,那么屬性也自然取的是其中的屬性叹螟。如果是dev也是相同的道理。運行一下看到結(jié)果hello test
朗徊。然后將ActiveProfiles切換成dev,看到結(jié)果hello dev
首妖。通過這種測試切換環(huán)境測試是不是超級方便。即測了功能也測了環(huán)境爷恳。
下節(jié)將的內(nèi)容是:SpringBoot基礎(chǔ)教程(十五)——與rabbitmq的結(jié)合