springboot遇见问题总结
Posted lwdmaib
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot遇见问题总结相关的知识,希望对你有一定的参考价值。
今天开始学习创建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遇见问题总结的主要内容,如果未能解决你的问题,请参考以下文章
全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段