亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot使用@SpringBootTest注解開發(fā)單元測試教程

 更新時間:2021年06月29日 10:07:14   作者:灰太狼_cxh  
這篇文章主要介紹了SpringBoot使用@SpringBootTest注解開發(fā)單元測試教程,本文通過詳細(xì)的案例過程來說明如何使用該項技術(shù),需要的朋友可以參考下

概述

@SpringBootTest注解是SpringBoot自1.4.0版本開始引入的一個用于測試的注解?;居梅ㄈ缦拢?/p>

1.添加依賴:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.cxh.test</groupId>
  <artifactId>generator</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
 <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.1.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
 
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>
  
  <dependencies>
 
		 <!-- spring boot web 依賴 -->
        <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>
        <!-- 修改后立即生效,熱部署 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>springloaded</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
        <!-- 視圖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        
         <!-- mybatis 依賴 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        	<version>1.3.0</version>
        </dependency>
        <!-- mysql 依賴 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        	<version>5.0.4</version>
        </dependency>
        <!-- alibaba的druid數(shù)據(jù)庫連接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.9</version>
        </dependency>
 
        
	</dependencies>
  <dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Camden.SR6</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
  <build/>
</project>

2. 編寫啟動入口類

package com.cxh.study.platform;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
/**
 * 
 * @desciption 
 * @author ChenXiHua
 *
 */
@SpringBootApplication
public class GeneratorApp {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		SpringApplication.run(GeneratorApp.class, args);
	}
 
}

3. 編寫Controller類

package com.cxh.study.platform;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
/**
 * 
 * @desciption 
 * @author ChenXiHua
 *
 */
@SpringBootApplication
public class GeneratorApp {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		SpringApplication.run(GeneratorApp.class, args);
	}
 
}

4. 編寫service類

package com.cxh.study.platform.service;
 
import java.util.List;
 
import com.cxh.study.platform.entity.User;
 
public interface IUserService {
 
	// 獲取所有用戶
	List<User> getAll();
 
	// 根據(jù)id獲取用戶
	User getUserById(Integer id);
}
package com.cxh.study.platform.service.impl;
 
import java.util.List;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import com.cxh.study.platform.entity.User;
import com.cxh.study.platform.mapper.IUserMapper;
import com.cxh.study.platform.service.IUserService;
 
@Service("userServiceImpl")
public class UserServiceImpl implements IUserService {
	
	@Autowired
	private IUserMapper userMapper;
 
	@Override
	public List<User> getAll() {
		return userMapper.getAll();
	}
 
	@Override
	public User getUserById(Integer id) {
		return userMapper.getUserById(id);
	}
 
}

5. 編寫mapper類

package com.cxh.study.platform.mapper;
 
import java.util.List;
 
import org.apache.ibatis.annotations.Mapper;
 
import com.cxh.study.platform.entity.User;
 
@Mapper
public interface IUserMapper {
	//獲取所有用戶
	List<User>getAll();
	//根據(jù)id獲取用戶
	User getUserById(Integer id);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cxh.study.platform.mapper.IUserMapper" >
	<!--獲取所有用戶  -->
	<select id="getAll" resultType="com.cxh.study.platform.entity.User">
		SELECT * FROM s_user
	</select>
	<!-- 根據(jù)id獲取單個用戶 -->
	<select id="getUserById" parameterType="java.lang.Integer" resultType="com.cxh.study.platform.entity.User">
		SELECT * FROM s_user
		where id=#{id}
	</select>
</mapper>

6. 編寫測試類

package com.cxh.test;
 
import java.net.URL;
import java.util.List;
 
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.embedded.LocalServerPort;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.junit4.SpringRunner;
 
import com.cxh.study.platform.GeneratorApp;
import com.cxh.study.platform.entity.User;
 
 
/**
 * 
 * @desciption 用戶管理測試類
 * @author ChenXiHua
 * @date 2019年2月19日
 *
 */
@RunWith(SpringRunner.class)
@SpringBootTest(classes = GeneratorApp.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class UserTest {
	
	 /**
     * @LocalServerPort 提供了 @Value("${local.server.port}") 的代替
     */
    @LocalServerPort
    private int port;
 
    private URL base;
 
    @Autowired
    private TestRestTemplate restTemplate;
 
    @Before
    public void setUp() throws Exception {
        String url = String.format("http://localhost:%d/", port);
        System.out.println(String.format("port is : [%d]", port));
        this.base = new URL(url);
    }
 
    /**
     * 向"/test"地址發(fā)送請求,并打印返回結(jié)果
     * @throws Exception
     */
    //@Test
    public void test1() throws Exception {
 
        ResponseEntity<String> response = this.restTemplate.getForEntity(
                this.base.toString() + "/test", String.class, "");
        System.out.println(String.format("測試結(jié)果為:%s", response.getBody()));
    }
    
    //@Test
    public void getAllTest() throws Exception {
 
        ResponseEntity<List> response = this.restTemplate.getForEntity(
                this.base.toString() + "/getAll", List.class, "");
        System.out.println(String.format("測試結(jié)果為:%s", response.getBody()));
    }
    
    @Test
    public void getUserByIdTest() throws Exception {
 
        ResponseEntity<User> response = this.restTemplate.getForEntity(
                this.base.toString() + "/getUserById?id=1", User.class, "");
        System.out.println(String.format("測試結(jié)果為:%s", response.getBody().toString()));
    }
 
}

其中,classes屬性指定啟動類,SpringBootTest.WebEnvironment.RANDOM_PORT經(jīng)常和測試類中@LocalServerPort一起在注入屬性時使用。會隨機(jī)生成一個端口號。

7.測試結(jié)果:

2019-02-19 16:18:27.933  INFO 6676 --- [           main] com.cxh.test.UserTest                    : Started UserTest in 25.637 seconds (JVM running for 27.647)

port is : [14067]

2019-02-19 16:18:31.366  INFO 6676 --- [o-auto-1-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'

2019-02-19 16:18:31.367  INFO 6676 --- [o-auto-1-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started

2019-02-19 16:18:31.462  INFO 6676 --- [o-auto-1-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 95 ms

測試結(jié)果為:User [id=1, account=cxh, password=123, type=1, status=1]

2019-02-19 16:18:35.326  INFO 6676 --- [       Thread-5] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@191004a: startup date [Tue Feb 19 16:18:05 CST 2019]; root of context hierarchy

到此這篇關(guān)于SpringBoot使用@SpringBootTest注解開發(fā)單元測試教程的文章就介紹到這了,更多相關(guān)SpringBoot使用@SpringBootTest開發(fā)單元測試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring框架實(shí)現(xiàn)依賴注入的原理

    Spring框架實(shí)現(xiàn)依賴注入的原理

    依賴注入是由“依賴”和“注入”兩個詞匯組合而成,那么我們再一次順藤摸瓜,分別分析這兩個詞語,這篇文章主要介紹了Spring DI依賴注入詳解,需要的朋友可以參考下
    2023-04-04
  • 詳細(xì)講解Java輸入語句的寫法

    詳細(xì)講解Java輸入語句的寫法

    作為初步進(jìn)入java開發(fā)學(xué)習(xí)的小白來說,學(xué)習(xí)java語言一開始的時候得一步步的學(xué)習(xí),比如說java輸入語句應(yīng)該這么去實(shí)現(xiàn)呢,這篇文章主要給大家介紹了關(guān)于Java輸入語句的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • java 對稱二叉樹的判斷

    java 對稱二叉樹的判斷

    這篇文章主要介紹了java 對稱二叉樹的判斷,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Spring中的ImportSelector接口原理解析

    Spring中的ImportSelector接口原理解析

    這篇文章主要介紹了Spring中的ImportSelector接口原理解析,ImportSelector接口是spring中導(dǎo)入外部配置的核心接口,根據(jù)給定的條件(通常是一個或多個注釋屬性)判定要導(dǎo)入那個配置類,需要的朋友可以參考下
    2024-01-01
  • java圖片驗證碼生成教程詳解

    java圖片驗證碼生成教程詳解

    這篇文章主要為大家詳細(xì)介紹了java圖片驗證碼生成教程,從簡單到復(fù)雜,從本地到前后臺,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Hadoop1.2中配置偽分布式的實(shí)例

    Hadoop1.2中配置偽分布式的實(shí)例

    這篇文章主要介紹了Hadoop1.2中配置偽分布式的實(shí)例,使用的系統(tǒng)是linux mint 15 64bit,hadoop使用的是1.2.1版本,需要的朋友可以參考下
    2014-04-04
  • Java負(fù)載均衡算法實(shí)現(xiàn)之輪詢和加權(quán)輪詢

    Java負(fù)載均衡算法實(shí)現(xiàn)之輪詢和加權(quán)輪詢

    網(wǎng)上找了不少負(fù)載均衡算法的資源,都不夠全面,后來自己結(jié)合了網(wǎng)上的一些算法實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Java負(fù)載均衡算法實(shí)現(xiàn)之輪詢和加權(quán)輪詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • java編程調(diào)用存儲過程中得到新增記錄id號的實(shí)現(xiàn)方法

    java編程調(diào)用存儲過程中得到新增記錄id號的實(shí)現(xiàn)方法

    這篇文章主要介紹了java編程調(diào)用存儲過程中得到新增記錄id號的實(shí)現(xiàn)方法,涉及Java數(shù)據(jù)庫操作中存儲過程的相關(guān)使用技巧,需要的朋友可以參考下
    2015-10-10
  • JAVA設(shè)計模式之組合模式原理與用法詳解

    JAVA設(shè)計模式之組合模式原理與用法詳解

    這篇文章主要介紹了JAVA設(shè)計模式之組合模式,簡單說明了組合模式的原理,并結(jié)合實(shí)例分析了java組合模式的具體用法,需要的朋友可以參考下
    2017-08-08
  • Java中RocketMq的消費(fèi)方式詳解

    Java中RocketMq的消費(fèi)方式詳解

    這篇文章主要介紹了Java中RocketMq的消費(fèi)方式詳解,RocketMQ的消費(fèi)方式都是基于拉模式拉取消息的,而在這其中有一種長輪詢機(jī)制(對普通輪詢的一種優(yōu)化),來平衡上面Push/Pull模型的各自缺點(diǎn),需要的朋友可以參考下
    2023-10-10

最新評論