1、关于doReturn
doReturn(new Test()).when(testService).updateStatusByLock(any(), any());
在单元测试里这个方法可以执行到这里之间跳过不去执行,返回你想要的返回值
2、关于given
given(user.getName(any())).willReturn("张三");
在单元测试里这个方法 任意参数可以返回你想要的返回值
3、在单元测试里测试上传附件并解析(由File转换成MockMultipartFile)
//通过路径获取附件
ClassPathResource resource = new ClassPathResource("templates/list/Price_Modeling_Table.xlsx");
File file = resource.getFile();
FileInputStream inputStream = new FileInputStream(file);
//转换成file的指定参数
MockMultipartFile multipartFile = new MockMultipartFile("file", file.getName(), "multipart/form-data", inputStream);
//实际上这个方法是post类型,但是这里需要指定的类型
MvcResult mvcResult = mockMvc.perform(multipart("/url")
.file(multipartFile)
.param("userId", "123"))
.andExpect(status().is(200)).andReturn();
4、关于同一个测试类插入同一条数据会报错
在同一个类里边有多个单元测试,如在testA里边插入了一条数据,在testB里边又复用了这条数据内容进行插入,当方法执行到testB的时候,因为上边testA已经插入了,在次插入就会报错