这里分三种,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")
);

最新文章

  1. Android中Service和Activity之间的通信
  2. 10款免费而优秀的图表JS插件
  3. 跟着百度学PHP[4]OOP面对对象编程-17-多态
  4. 清除WebLogic8.1缓存
  5. 浅谈CLR
  6. eclipse workspace 共享配置文件
  7. asp.net 使用IHttpModule 做权限检查 登录超时检查(转)
  8. Windows命令行命令集锦
  9. 009一对一 主键关联映射_单向(one-to-one)
  10. Hadoop 3.x 新特性剖析系列2
  11. java求最大值以及定义方法调用
  12. Mysql清空表(truncate)与删除表中数据(delete)的区别
  13. CMS漏洞检测工具 – CMSmap
  14. numpy 中的axis轴问题
  15. Vue开发中的中央事件总线
  16. CSS3基础
  17. 证明自己吧--------Writeup
  18. python 类 __call__
  19. Windows 下 左Ctrl和Caps交换
  20. const 与 指针

热门文章

  1. (转)OpenFire源码学习之七:组(用户群)与花名册(用户好友)
  2. Linux-vim编辑器 常用命令 复制粘贴
  3. vfs_path_lookup
  4. export 与 export default
  5. 牛客网多校训练第八场A All one Matrix
  6. Docker搭建 oracle
  7. VMware1设备与主机共享网络的问题
  8. 关于while循环中的break和continue的区别
  9. centos6.5下,使用虚拟ftp用户
  10. 带你彻底理解RSA算法原理,很简单的