今天开始学习创建springboot项目

问题1:

产生异常:

创建项目目录:

demo代码:

代码Controller

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; /**
* Created by andyliu on 2018/10/3.
*/
@RestController
public class LoginController { @RequestMapping(value = "/login")
public String login(){
return "success1";
}
}

测试用例采用mockMvc实现单元测试用例  mockmvc是mvc单元测试用例对象  preform(英文执行的意思)方法执行方法内部需要一个MockMvcRequestBuilders对象

MockRequestBuilders对象用来构建mockmvc的通过get方法模拟浏览器发送的get请求get方法参数为url请求地址,同时accept方法参数为指定接收的媒体类型为什么

andExpect方法为期望方法  也就是说该方法是我们期望的预期值 内部传入status()方法是对返回的状态判断通过isOk判断状态是否正确  同时可以添加多个期望比如期望内容  通过content()方法返回内容调用string()方法内容通过equalTo()方法来比较返回值内容是否相等。

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class LoginTest { @Autowired
private MockMvc mockMvc; @Test
public void loginTest() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/login").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("success")));
}
}

当执行测试用例的时候这样会报出上面的错误。

为什么采用mackmvc来进行单元测试那,这样可以不通过创建httpClient来创建客户端请求  同时避免了由于网络等各种原因导致的测试问题

那么上面的异常产生原因是什么那:

在阐述上面的问题原因之前  在我说一下这个问题在使用测试用例之前就出现了  那就是创建好springboot项目后采用浏览器访问localhost:8080/login 无法访问创建好的方法。以前创建过一直认为这样写没有错误,没错代码是没有任何问题的。问题产生原因是????

答案:

springboot创建同时会创建一个启动类 因为springboot内部集成了tomcat等应用服务器  测试中也同样创建了这样一个启动类

@SpringBootApplication
public class SBootDemoApplication { public static void main(String[] args) {
SpringApplication.run(SBootDemoApplication.class, args);
}
}

springboot启动类要放在根目录下,网上都说根目录,按我说就是你所有代码的上一级目录,可以让启动类在启动的时候扫描到所有的类

正确的操作如图就解决了这个问题

springboot遇见问题总结的更多相关文章

  1. 学习SpringBoot中遇见的坑

    1. 在搭建SpringBoot HelloWorld 时项目结构应该这样: 而不能这样: 否则访问时出现错误页面: 原因:此时还不知道,先记录下来. --已解决2018/12/11,因为Spring ...

  2. Springboot集成Common模块中的的全局异常处理遇见的问题

    由于项目公共代码需要提取一个common模块,例如对于项目的文件上传,异常处理等,本次集成common代码时候maven引入common的全局异常处理代码之后发现不生效,由于common包路径与自己的 ...

  3. springboot+vue+element:echarts开发遇见问题---后端sql(三)

    <select id="getSumRequestRankingCount" parameterType="java.lang.String" resul ...

  4. springboot+vue+element:echarts开发遇见问题---vue前端(二)

    <template> <u-grid> <u-grid-item caption="服务使用统计排行"> <div class=" ...

  5. (一)SpringBoot基础篇- 介绍及HelloWorld初体验

    1.SpringBoot介绍: 根据官方SpringBoot文档描述,BUILD ANYTHING WITH SPRING BOOT (用SPRING BOOT构建任何东西,很牛X呀!),下面是官方文 ...

  6. springboot添加多数据源连接池并配置Mybatis

    springboot添加多数据源连接池并配置Mybatis 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/9190226.html May 12, 2018  ...

  7. ideal中把项目打成war包,并放在tomcat运行,遇见的问题。。。

    先说下我遇见的问题吧:最近做项目要把项目放在tomcat上运行,用的springboot框架, 在建项目时选择的是  jar包,项目写完要部署打包是,在pom中虽然把包改成了war ,可是每次放入to ...

  8. SpringBoot多模块项目打包问题

    项目结构图如下: 在SpringBoot多模块项目打包时遇见如下错误: 1.repackage failed: Unable to find main class -> [Help 1] 解决步 ...

  9. SpringBoot系列九:SpringBoot服务整合(整合邮件服务、定时调度、Actuator监控)

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:SpringBoot 服务整合 2.背景 在进行项目开发的时候经常会遇见以下的几个问题:需要进行邮件发送.定时的任务调 ...

随机推荐

  1. linux单机限速工具

    wondershaper是国外人开发的一款在Linux内核下基于TC工具的对整块网卡的限度工具. http://lartc.org/wondershaper/ 安装wondershaper: [roo ...

  2. element-ui打包的坑爹之处 !!!必看三遍!!!

    最近笔者打包element-ui出现如下问题: ERROR in static/js/0.4cad92088cb8dc6e7afd.js from UglifyJs Unexpected token: ...

  3. Node.js-sublime text3 配置node.js(ERROR: The process "node.exe" not found.)

    默认已经安装好sublime.node和npm 1.sublime的node.js插件下载 由于在package control上经常下载失败,所以这里直接从GitHub上进行下载! GitHub下载 ...

  4. Docker和宿主机操作系统文件目录互相隔离的实现原理

    我们知道在Docker容器里是无法访问到宿主操作系统的文件目录的,但这种隔离是怎么实现的呢? 其实一点也不神奇--利用了Linux系统的内部命令chroot. chroot能将进程的根目录设置成任意指 ...

  5. SQL语句关于时间的查询小心得,希望大家给点意见

    完全使用时间函数去搞定查询日期,之前写的可能有些问题,现在删了修正一下 本月记录: SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())= ...

  6. LA 3938 动态最大连续和

    题目链接:https://vjudge.net/contest/146667#problem/C 题意:动态的求一个区间的最大连续和. 分析: 看上去可以RMQ去做,但是,当分成两个部分,原来的部分的 ...

  7. 关于 npm install 命令

    使用 `npm install` 命令安装模块时 ,有以下几种形式: 安装模块到项目 node_modules 目录下,不会将模块依赖写入 dependencies 或 devDependencies ...

  8. Shell编程学习之Shell编程基础(一)

    这篇随笔将要介绍关于Shell编程的基本知识,这些将会在假设你已经熟悉了Linux系统和命令行的基本知识. 构建基本脚本 你应该了解或熟悉使用Shell命令行了,但是只是使用Shell命令行的命令,有 ...

  9. C#流程控制语句

    C#流程控制语句 一.选择语句 当程序中需要进行两个或两个以上的选择时,可以根据条件的判断来选择将要执行的一组语句. ?if语句 ?switch语句 二.循环语句 循环语句是对一个程序模块进行的重复操 ...

  10. DCMTK读取DICOM文件头信息的三种方法

    Howto: Load File Meta-Header Here's an example that shows how to load the File Meta Information Head ...