激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - SpringBoot MockMvc單元測試的示例代碼

SpringBoot MockMvc單元測試的示例代碼

2021-06-14 14:25玉天恒 Java教程

這篇文章主要介紹了SpringBoot MockMvc單元測試的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

為何使用mockmvc?

對模塊進行集成測試時,希望能夠通過輸入url對controller進行測試,如果通過啟動服務器,建立http client進行測試,這樣會使得測試變得很麻煩,比如,啟動速度慢,測試驗證不方便,依賴網絡環境等,所以為了可以對controller進行測試,我們引入了mockmvc。

mockmvc實現了對http請求的模擬,能夠直接使用網絡的形式,轉換到controller的調用,這樣可以使得測試速度快、不依賴網絡環境,而且提供了一套驗證的工具,這樣可以使得請求的驗證統一而且很方便。

mockmvcbuilder

mockmvc是spring測試下的一個非常好用的類,他們的初始化需要在setup中進行。

mockmvcbuilder是用來構造mockmvc的構造器,其主要有兩個實現:standalonemockmvcbuilder和defaultmockmvcbuilder,前者繼承了后者。

① mockmvcbuilders.webappcontextsetup(webapplicationcontext context):指定webapplicationcontext,將會從該上下文獲取相應的控制器并得到相應的mockmvc;

② mockmvcbuilders.standalonesetup(object... controllers):通過參數指定一組控制器,這樣就不需要從上下文獲取了,比如this.mockmvc = mockmvcbuilders.standalonesetup(this.controller).build();

這些builder還提供了其他api,可以自行百度

1.添加測試依賴

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<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>top.ytheng</groupid>
 <artifactid>springboot-demo</artifactid>
 <version>0.0.1-snapshot</version>
 <packaging>jar</packaging>
 
 <parent>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-parent</artifactid>
    <version>2.0.5.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>
    <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>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-thymeleaf</artifactid>
    </dependency>
    
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-devtools</artifactid>
      <optional>true</optional>
       <scope>true</scope>
    </dependency>
  </dependencies>
 
  <build>
    <plugins>
      <plugin>
        <groupid>org.springframework.boot</groupid>
        <artifactid>spring-boot-maven-plugin</artifactid>
      </plugin>
    </plugins>
  </build>
</project>

2.添加mocmvc測試類

SpringBoot MockMvc單元測試的示例代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package top.ytheng.demo;
 
import org.junit.test;
import org.junit.runner.runwith;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.autoconfiguremockmvc;
import org.springframework.boot.test.context.springboottest;
import org.springframework.test.context.junit4.springrunner;
import org.springframework.test.web.servlet.mockmvc;
import org.springframework.test.web.servlet.mvcresult;
import org.springframework.test.web.servlet.request.mockmvcrequestbuilders;
import org.springframework.test.web.servlet.result.mockmvcresultmatchers;
 
//底層用junit springjunit4classrunner
@runwith(springrunner.class)
//啟動整個springboot工程
@springboottest(classes= {demoapplication.class})
//鼠標選中springboottestdemo后執行run as -> junit test可以同時執行多個測試
@autoconfiguremockmvc
public class mockmvctestdemo {
  
  @autowired
  private mockmvc mockmvc;
  
  @test
  public void mocktest() throws exception {
    mvcresult mockresult = mockmvc.perform(mockmvcrequestbuilders.get("/file/testpath")).
        andexpect(mockmvcresultmatchers.status().isok()).andreturn();
    int status = mockresult.getresponse().getstatus();
    system.out.println(status);
  }
}

3.添加測試控制器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package top.ytheng.demo.controller;
 
import org.springframework.stereotype.controller;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.responsebody;
 
@controller
@requestmapping("/file")
public class filecontroller {
  
  @requestmapping("/testpath")
  @responsebody
  private object testpath() {
    return filepath;
  }
 
}

4.添加啟動類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
package top.ytheng.demo;
import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;
@springbootapplication //等于下面3個
//@springbootconfiguration
//@enableautoconfiguration
//@componentscan
public class demoapplication {
 
  public static void main(string[] args) {
    springapplication.run(demoapplication.class, args);
  }
}

5.鼠標選中mockmvctestdemo類名,使用快捷鍵啟動junit測試(shift + alt + x,t),進行測試

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/tianhengblogs/p/9768857.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 精品国产视频一区二区三区 | 欧美成人国产va精品日本一级 | 欧美视频99 | 欧美14一15sex性hd | 一级免费看片 | 一级国产精品一级国产精品片 | 成人免费观看毛片 | 精品久久久久久久久久久αⅴ | 国产一级毛片国语版 | 毛片免费视频播放 | 在线看一区二区三区 | 日韩大片在线永久观看视频网站免费 | 久久男人天堂 | 日韩在线播放中文字幕 | 成人久久久久久久久久 | 国产毛片在线看 | 日韩黄a | 一级做a爱片性色毛片 | 激情小说激情电影 | 99视频观看| 看毛片电影 | 一级做受毛片免费大片 | 日韩精品一二三区 | 国产91在线高潮白浆在线观看 | 91最新视频在线观看 | 羞羞网站视频 | 中文字幕免费看 | 伊人久操视频 | 国产精品1区,2区,3区 | 九九热精品在线 | 在线播放黄色网址 | 久久久看| 国产精品色综合 | 久久久久久69 | 国产在线精品一区二区三区不卡 | 爱福利视频 | 一区二区三区日本在线观看 | 少妇一级淫片高潮流水电影 | 欧美一级做性受免费大片免费 | 成人福利在线观看 | 中国老女人一级毛片视频 |