最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于MockMvc進(jìn)行springboot調(diào)試(SpringbootTest)

 更新時(shí)間:2019年10月15日 10:41:38   作者:你不知道的浪漫  
這篇文章主要介紹了基于MockMvc進(jìn)行springboot調(diào)試(SpringbootTest),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了基于MockMvc進(jìn)行springboot調(diào)試(SpringbootTest),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

測(cè)試前關(guān)閉web項(xiàng)目。springboot啟動(dòng)程序WebApplication.class

筆者本地自定了端口SpringBootTest.WebEnvironment.DEFINED_PORT

代碼如下:

import com.netmarch.web.WebApplication;
import org.junit.Before;
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.http.MediaType;
import org.springframework.mock.web.MockHttpSession;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;

import java.time.Instant;
import java.util.Random;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = WebApplication.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@AutoConfigureMockMvc
public class TestAppController {

  @Autowired
  private WebApplicationContext context;

  @Autowired
  private MockMvc mvc;

  private MockHttpSession session;// 1.定義一個(gè)變量保存session

  String pathOnClasspath;



  @Before
  public void setUp() throws Exception {
    mvc = MockMvcBuilders.webAppContextSetup(context).build();
    session = new MockHttpSession(); //2.初始化
  }

  @Test
  public void login() throws Exception {
    // 登陸
    MockHttpServletRequestBuilder loginRequestBuilder = MockMvcRequestBuilders.post("/user2/login")
        .param("loginName", "test")
        .param("password", "567")
        .contentType(MediaType.APPLICATION_JSON_UTF8)
        .accept(MediaType.APPLICATION_JSON)
        .session(session);//3.當(dāng)某個(gè)請(qǐng)求需要session時(shí),直接在構(gòu)造器中綁定需要的session
    mvc.perform(loginRequestBuilder).andDo(MockMvcResultHandlers.print());

  }

  @Test
  public void save() throws Exception {

    //先登錄
    login();

    mvc.perform(post("/app/save")
        .param("name","測(cè)試")
        .param("categoryId","567")
        .param("description","休閑益智類(lèi)游戲語(yǔ)音識(shí)別測(cè)試")
        .session(session)
        .contentType(MediaType.APPLICATION_JSON))
        .andExpect(status().isOk())
        //.andExpect(jsonPath("$",hasSize(1)))
        //.andExpect(jsonPath("$.message").value(is("保存成功")))
        //.andExpect(jsonPath("$.message"),is("保存成功"))
        .andDo(MockMvcResultHandlers.print());
  }


  @Test
  public void update() throws Exception{
    Random rnd = new Random();
    int id = rnd.nextInt(6);
    mvc.perform(
        post("/app/update")
            .param("id", String.valueOf(id))
            .param("name", String.format("測(cè)試%s", Instant.now().toEpochMilli()))
            .param("description", "描述12121")
    ).andDo(MockMvcResultHandlers.print());
  }

  @Test
  public void list() throws Exception {
    mvc.perform(get("/app/list")
        .contentType(MediaType.TEXT_HTML))
        .andExpect(status().isOk())
        .andDo(MockMvcResultHandlers.print());
  }

  @Test
  public void filteredList() throws Exception {
    mvc.perform(post("/app/list")
        .param("keyword","111")
        .contentType(MediaType.TEXT_HTML))
        .andExpect(status().isOk())
        .andDo(MockMvcResultHandlers.print());
  }

  @Test
  public void testisDuplicatedName() throws Exception
  {
    mvc.perform(post("/app/isDuplicatedName")
        .param("name","測(cè)試")
    ).andDo(MockMvcResultHandlers.print());
  }


}

測(cè)試輸出效果

其他參考:

https://www.petrikainulainen.net/programming/spring-framework/integration-testing-of-spring-mvc-applications-write-clean-assertions-with-jsonpath/

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Springboot2.x+Quartz分布式集群的實(shí)現(xiàn)

    Springboot2.x+Quartz分布式集群的實(shí)現(xiàn)

    這篇文章主要介紹了Springboot2.x+Quartz分布式集群的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java注解處理器簡(jiǎn)單實(shí)例

    Java注解處理器簡(jiǎn)單實(shí)例

    這篇文章主要介紹了Java注解處理器簡(jiǎn)單實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Java內(nèi)存緩存工具Guava LoadingCache使用解析

    Java內(nèi)存緩存工具Guava LoadingCache使用解析

    這篇文章主要介紹了Java內(nèi)存緩存工具Guava LoadingCache使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Java實(shí)現(xiàn)File轉(zhuǎn)換MultipartFile格式的例子

    Java實(shí)現(xiàn)File轉(zhuǎn)換MultipartFile格式的例子

    本文主要介紹了Java實(shí)現(xiàn)File轉(zhuǎn)換MultipartFile格式的例子,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java實(shí)現(xiàn)圖像分割功能

    Java實(shí)現(xiàn)圖像分割功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)圖像分割功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • JAVA線程用法詳解

    JAVA線程用法詳解

    這篇文章主要介紹了JAVA線程用法,配合實(shí)例針對(duì)Java中線程的開(kāi)啟、sleep、合并與讓出等進(jìn)行了較為深入的分析,需要的朋友可以參考下
    2014-08-08
  • Java中List根據(jù)條件刪除元素的幾種方式

    Java中List根據(jù)條件刪除元素的幾種方式

    java List刪除指定元素有四種方法,分別是普通for循環(huán),增強(qiáng)for循環(huán),CopyOnWriteArrayList以及原生的Iterator迭代器循環(huán)來(lái)刪除list中指定的某個(gè)元素,非常的簡(jiǎn)單,并通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • 將JSON字符串?dāng)?shù)組轉(zhuǎn)對(duì)象集合方法步驟

    將JSON字符串?dāng)?shù)組轉(zhuǎn)對(duì)象集合方法步驟

    這篇文章主要給大家介紹了關(guān)于將JSON字符串?dāng)?shù)組轉(zhuǎn)對(duì)象集合的方法步驟,文中通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • IntelliJ IDEA maven 構(gòu)建簡(jiǎn)單springmvc項(xiàng)目(圖文教程)

    IntelliJ IDEA maven 構(gòu)建簡(jiǎn)單springmvc項(xiàng)目(圖文教程)

    在工作當(dāng)中,我們有時(shí)需要?jiǎng)?chuàng)建一個(gè)全新的工程,而基于spring-mvc web的工程較為常見(jiàn),這篇文章主要介紹了IntelliJ IDEA maven 構(gòu)建簡(jiǎn)單springmvc項(xiàng)目(圖文教程),感興趣的小伙伴們可以參考一下
    2018-05-05
  • Java OpenCV實(shí)現(xiàn)人臉識(shí)別過(guò)程詳解

    Java OpenCV實(shí)現(xiàn)人臉識(shí)別過(guò)程詳解

    這篇文章主要介紹了Java OpenCV實(shí)現(xiàn)人臉識(shí)別過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

娄底市| 中江县| 龙口市| 丰原市| 民乐县| 平罗县| 磐石市| 兴山县| 大港区| 民乐县| 赣榆县| 抚顺市| 阿克| 庄浪县| 思茅市| 恩平市| 远安县| 托克逊县| 景洪市| 信宜市| 扎囊县| 许昌市| 衡水市| 盐源县| 扬中市| 宁乡县| 九龙县| 玉溪市| 连云港市| 沂水县| 新疆| 普陀区| 陇川县| 哈巴河县| 科尔| 内黄县| 延长县| 鸡西市| 江西省| 双峰县| 乐平市|