spring boot junit test
这里分三种,1、测普通方法或通过原生java API接口调用 2、基于spring依赖注入调用 3、controller层调用
需要引入依赖:默认springboot已经引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
在src/test/java下建立test类
1、测普通方法或通过原生java API接口调用
public class commonTest {
@Test
public void testPrint() {
System.out.println(2222222);
}
}
2、基于spring依赖注入调用 内部可以通过@autowired、@Resourced等注入对象实例
@RunWith(SpringRunner.class)
@SpringBootTest
public class applicationTest {
//注入的接口类
@Autowired
private TestService testService;
@Test
public void contextLoads() throws Exception{
testService.print();
}
}
public interface TestService {
public void print()throws Exception;
}
@Service("testService")
public class TestServiceImpl implements TestService {
@Override
public void print() throws Exception {
// TODO Auto-generated method stub
System.out.println("service print test...");
}
}
3、 controller层调用
@SpringBootTest
public class ControllerTest {
private MockMvc mockMvc;
//@Before注解的表示在测试启动的时候优先执行,一般用作资源初始化。
//这里初始化生成controller类单例
@Before
public void setUp()throws Exception{
mockMvc=MockMvcBuilders.standaloneSetup(new TestController()).build();
}
@Test
public void controllerTest()throws Exception{
String returnJson = mockMvc.perform(MockMvcRequestBuilders.post("/list")).andReturn().getResponse().getContentAsString();
System.out.println(returnJson);
}
}
@RestController
public class TestController {
@RequestMapping(value="/list",method={RequestMethod.POST})
public List<TestVO> getTestList() {
List<TestVO> vos = new ArrayList<TestVO>();
TestVO vo = new TestVO();
vo.setAge(13);
vo.setName("薛邵");
vo.setSex(true);
vo.setDate(new Date());
vos.add(vo);
TestVO vo1 = new TestVO();
vo1.setAge(15);
vo1.setName("xiaoming");
vo1.setSex(false);
vo1.setDate(new Date());
vos.add(vo1);
return vos;
}
}
MockMvc 调用controller接口的几个示例:
A
//get请求一个查询/test/hhhhhhh/99,控制台打印http请求和响应信息
//print()方法,需要静态引入import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
mockMvc.perform(MockMvcRequestBuilders.get("/test/hhhhhhh/99").accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print());
打印示例如下:
其中Body= aaaaaaaaaaaaaaaaaaaaaaaahhhhhhh99即我们预期打印的内容,也就是controller接口返回的文本
B
//通过.addExpect来判断预期内容是否符合,如果符合控制台无信息,如果不符合,junit控制台会显示具体错误信息
//.accept(MediaType.APPLICATION_JSON_UTF8)
//这句主要是设置JSON返回编码,避免出现中文乱码问题
mockMvc.perform(MockMvcRequestBuilders.get("/test/hhhhhhh/99").accept(MediaType.APPLICATION_JSON_UTF8)).andExpect(MockMvcResultMatchers.content().string(Matchers.containsString("hhhhhhh991")));
C
//获取返回内容直接输出打印
String returnJson = mockMvc.perform(MockMvcRequestBuilders.post("/testvo")).andReturn().getResponse().getContentAsString();
System.out.println(returnJson);
D
//设置参数POST提交
mockMvc.perform(MockMvcRequestBuilders.post("/v")
// .param("age", "28")
// .param("name", "aaa")
// .param("list", "[\"bb\",\"cc\"]")
// .param("card", "123456789012345678")
// .param("date", "2019-10-01 11:09:11")
// .param("weight", "99.99")
// .param("sex", "true")
//// .param("tmp", "")
//// .param("phone", "")
// .param("dicimal", "18")
// .param("email", "aaa")
);
spring boot junit test的更多相关文章
- 学习 Spring Boot:(二十九)Spring Boot Junit 单元测试
前言 JUnit 是一个回归测试框架,被开发者用于实施对应用程序的单元测试,加快程序编制速度,同时提高编码的质量. JUnit 测试框架具有以下重要特性: 测试工具 测试套件 测试运行器 测试分类 了 ...
- Spring boot Junit Test单元测试
Spring boot 1.40 JUnit 4 需要依赖包 spring-boot-starter-test.spring-test 建立class,加上如下注解,即可进行单元测试,别的帖子里说要加 ...
- (27)Spring Boot Junit单元测试【从零开始学Spring Boot】
Junit这种老技术,现在又拿出来说,不为别的,某种程度上来说,更是为了要说明它在项目中的重要性. 那么先简单说一下为什么要写测试用例 1. 可以避免测试点的遗漏,为了更好的进行测试,可以提高测试效率 ...
- (转)Spring Boot Junit单元测试
场景:在项目开发中要测试springboot工程中一个几个dao和service的功能是否正常,初期是在web工程中进行要素的录入,工作量太大.使用该单元测试大大减小了工作强度. Junit这种老技术 ...
- spring boot junit controller
MockMvc 来自Spring Test,它允许您通过一组方便的builder类向 DispatcherServlet 发送HTTP请求,并对结果作出断言.请注意,@AutoConfigureMoc ...
- spring boot -junit单元测试方法示例
package com.example.zs; import com.example.zs.mapper.UserMapper; import com.example.zs.pojo.User; im ...
- Spring Boot Junit单元测试
http://blog.csdn.net/catoop/article/details/50752964
- 83. Spring Boot 1.4单元测试【从零开始学Spring Boot】
在[27. Spring Boot Junit单元测试]中讲过1.3版本的单元测试方式,这里说说1.4和1.3有什么区别之处? 在1.3中单元测试这样子的类似代码: //// SpringJUnit支 ...
- Spring Boot(十二)单元测试JUnit
一.介绍 JUnit是一款优秀的开源Java单元测试框架,也是目前使用率最高最流行的测试框架,开发工具Eclipse和IDEA对JUnit都有很好的支持,JUnit主要用于白盒测试和回归测试. 白盒测 ...
随机推荐
- NYOJ 301 递推求值
第一次写博客,拿个矩阵快速幂练练手吧. 首先什么是快速幂,快速幂是让复杂度由线性降为log n的算法,比如8^1024次方暴力要算1024次,但是矩阵快速幂只算10次就好. 此题只不过是把快速幂的底数 ...
- MVC 中对返回的 data 进行压缩
在webAPI 中返回数据,在数据量比较大的情况的下,返回的data 也可能比较大,有时候可能大于1兆,因此对数据进行压缩能极大的提高数据下载到客户端的时间,提高页面的加载速度. 思路: 在web a ...
- Linux内存管理(深入理解Linux内核)
Linux的内存管理,实际上是借助80x86的硬件分段和分页电路,将逻辑地址转化为物理地址的. 物理内存中,有一部分是一直(Permanently)映射给内核使用的,这部分主要用于保存内核的代码,以及 ...
- HDU 1392 Surround the Trees (凸包周长)
题目链接:HDU 1392 Problem Description There are a lot of trees in an area. A peasant wants to buy a rope ...
- 拾遗:Go 单元测试
概念 回归测试:是指修改了旧代码之后,重新进行测试,以确保修改没有引入新的错误或导致其它代码产生错误: 单元测试:是指对软件中的最小可测试单元(单个函数或类)进行检查和验证 Test-Driven D ...
- (转载) 深入理解ES6箭头函数的this以及各类this面试题总结
声明:本文转载自 https://blog.csdn.net/yangbingbinga/article/details/61424363 ES6中新增了箭头函数这种语法,箭头函数以其简洁性和方便获取 ...
- wordpress 上传图片时提示“无法建立目录wp-content/uploads/2019/03。有没有上级目录的写权限?”
查一下网站目录下wp-content目录的权限, # ls -l drwxr-xr-x 5 nobody 65534 4096 Feb 3 2016 wp-content 修改wp-conte ...
- nfs下的exportfs命令和nfs客户端重新挂载
工作中,如果使用了nfs服务器,会遇到修改nfs服务器配置的情况,如果想重新让客户端加载上修改后的配置,但是又不能重启rpcbind服务,我们需要使用export命令了 exportfs命令 常用选项 ...
- HBase1.0.0 实现数据增删查
HBase1.0.0 即Hadoop 2.6 采用maven 的方式实现HBase数据简单操作 import java.io.IOException; import java.util.ArrayLi ...
- 5.1中容器(Container)和门面(Facade)的实现
tp5.1中引入了容器(Container)和门面(Facade)这两个新的类 官方文档已经给出了定义: 容器(Container)实现类的统一管理,确保对象实例的唯一性. 门面(Facade)为容器 ...