文档章节

SpringBoot基础教程及框架整合(三)----HelloWorld及单元测试

l
 lason
发布于 2017/07/07 10:35
字数 732
阅读 14
收藏 1

通过上一篇"SpringBoot基础教程及框架整合(二)----项目结构简介",我们了解了通过IDEA创建的SpringBoot项目的基本结构.

接下来我们就按照世界通用规则,写一个HelloWorld,并创建其单元测试.

一. 创建HelloWorld并进行浏览器端的测试

    1. 在src/main/java/com/bcdbook/common/demo/hello下创建类HelloWorld如下

package com.bcdbook.common.demo.hello;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * Created by lason on 2017/7/7.
 */
/*
 * @RestController相当于
 * @Controler+@ResponseBody
 * @Controller表示在Spirng中注入一个bean,这个bean的类型是一个控制器
 * @ResponseBody表示返回的数据类型是JSON
 */
@Controller
/*
 * @RequestMapping用来定义请求的路径,
 * 定义在类上,则当前类下所有的映射路径均有这个前缀
 * 括号内传递的值是所映射的路径
 */
@RequestMapping("/demo/helloWorld")
public class HelloWorld {
    /**
     * SpringBoot的HelloWorld
     * 通过一个请求,返回一个对应的数据,最基础的一个接口
     * @return
     */
    /*
     * @GetMapping 相当于 @RequestMapping(method = RequestMethod.GET)
     * 同理@PostMapping 相当于 @RequestMapping(method = RequestMethod.POST)
     */
    @GetMapping("/helloWorld")
    @ResponseBody
    public String helloWorld(){
        return "Hello World";
    }

    /*
     * 返回一个页面的demo
     * 此demo是结合Spring推荐的模板引擎框架Template实现的(需要引入相应的jar)
     */
    @GetMapping("/helloTemplates")
    public String helloTemplates(){
        return "demo/hello/helloTemplate";
    }
}

创建HelloWorld类并完成上述代码后,即可对第一个demo--helloWorld进行测试.

若要测试helloTemplates需要创建一个html文件,对应上面映射返回的路径地址,我们在/src/main/resources/templates/demo/hello下创建helloTemplate.html文件,文件内容如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>测试返回页面的方法</title>
</head>
<body>
    this is helloTemplate page
</body>
</html>

至此,我们就可以对helloTemplate进行测试了.

 

二.Junit测试

在/src/test/java/com/bcdbook/common/demo/hello下创建测试类HelloWorldTest,内容如下

package com.bcdbook.common.demo.hello;

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.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;

/**
 * Created by lason on 2017/7/7.
 *
 * Controller层的测试
 */
/*
 * 设定当前测试类的测试环境,底层为junit测试工具
 */
@RunWith(SpringRunner.class)
/*
 * TODO --等待解释
 * 表示将启动整个spring工程
 */
@SpringBootTest
/*
 * 引入模拟器的注解
 */
@AutoConfigureMockMvc
public class HelloWorldTest {
    //自动注入spring的mvc模拟器
    @Autowired
    private MockMvc mvc;


    /**
     * 测试HelloWorld的方法
     * @throws Exception
     */
    @Test
    public void helloWorld() throws Exception {
        //设定请求路径及请求方式并执行请求
        mvc.perform(MockMvcRequestBuilders.get("/demo/helloWorld/helloWorld"))
                //判断返回的状态是否ok
                .andExpect(MockMvcResultMatchers.status().isOk())
                //判断内容是否和预计内容一致
                .andExpect(MockMvcResultMatchers.content().string("Hello World"));
    }

    /**
     * 测试HelloWorld的方法
     * @throws Exception
     */
    @Test
    public void helloTemplates() throws Exception {
        //设定请求路径及请求方式并执行请求
        mvc.perform(MockMvcRequestBuilders.get("/demo/helloWorld/helloTemplates"))
                //判断返回的状态是否ok
                .andExpect(MockMvcResultMatchers.status().isOk());
    }

}

至此,我们的创建HelloWorld并建立相应的测试,已经完成

文章中若有不好理解的或有问题请留言,我会在第一时间给出回复.

 

版权所有,转载请写明出处.

© 著作权归作者所有

l
粉丝 0
博文 7
码字总数 4272
作品 0
苏州
私信 提问
Spring Boot学习笔记

多模块开发 [SpringBoot学习]-IDEA创建Gradle多Module结构的SpringBoot项目 RabbitMQ RabbitMQ 安装 linux安装RabbitMQ详细教程 Ubuntu 16.04 RabbitMq 安装与运行(安装篇) ubantu安装...

OSC_fly
2018/07/26
0
0
SpringBoot 学习二:操作数据库

本文将从以下几个方面介绍: 前言 配置数据源 SpringBoot 整合 Mybatis SpringBoot 整合 JdbcTemplate SpringBoot 整合 Redis 前言 在上篇文章 SpringBoot 学习一 中已经学习了 SpringBoot的...

tsmyk0715
2018/09/26
618
0
【SpringBoot2.0系列05】SpringBoot之整合Mybatis

【SpringBoot2.0系列01】初识SpringBoot 【SpringBoot2.0系列02】SpringBoot之使用Thymeleaf视图模板 【SpringBoot2.0系列03】SpringBoot之使用freemark视图模板 【SpringBoot2.0系列04】Spr...

余空啊
2018/08/14
0
0
springboot从入门到精通教程分享, 深度掌握Springboot实践技术教程

深度掌握Springboot实践技术教程,共22个课时,需要的可回复邮箱。 课程简介 day1 01springboot简介-曾经开发中的问题 02springboot解决的问题-优势以及弊端 03springboot环境准备 04spring...

小小倾听
2018/12/06
661
18
极速上手进阶大神的 5 门 SpringBoot 课程

SpringBoot 因其大大简化了配置。可快速启动一个应用的开发环境,把时间和精力更多的投入到实现业务需求上去。成为了Java 服务器端近几年特别火爆的框架。 如此火爆的技术,怎能不抢先了解一...

实验楼
08/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Replugin借助“UI进程”来快速释放Dex

public static boolean preload(PluginInfo pi) { if (pi == null) { return false; } // 借助“UI进程”来快速释放Dex(见PluginFastInstallProviderProxy的说明) return PluginFastInsta......

Gemini-Lin
46分钟前
4
0
Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
今天
4
0
CSS--属性

一、溢出 当内容多,元素区域小的时候,就会产生溢出效果,默认是纵向溢出 横向溢出:在内容和容器之间再套一层容器,并且内部容器要比外部容器宽 属性:overflow/overflow-x/overflow-y 取值...

wytao1995
今天
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
7
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部