private String getResult(String url, String body) throws Exception{
MvcResult result = mockMvc.perform(MockMvcRequestBuilders
.post(url)
.content(body)
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk()).andReturn();
String resultContent = result.getResponse().getContentAsString();
return resultContent;
}
JSONObject obj = new JSONObject();
obj.put("title", "test project2");
obj.put("description", "This is a test case");
obj.put("uId", 1);
obj.put("paymentLower", 20.1);
obj.put("paymentHigher", 20.3);
obj.put("biddingDdl", "2020-7-17");
obj.put("finishDdl", "2020-7-24");
mockMvc.perform(MockMvcRequestBuilders
.post("/postWork")
.content(obj.toString())
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk());
直接访问数据库,查询插入结果。
postbody: {"pagenum":1, "size":20}
JSONObject obj = new JSONObject();
obj.put("pagenum", 1);
obj.put("size", 20);
String resultContent = getResult("/getWorks", obj.toString());
List<Work> workList = om.readValue(resultContent, new TypeReference<List<Work>>() {});
Pageable pageable = PageRequest.of(0, 20, Sort.by(Sort.Direction.ASC, "w_id"));
assertEquals(workService.getWorks(pageable).getContent().size(), workList.size());
比较controller接口和serviece层接口的结果
postbody: {"pagenum":1, "size":20, "u_id":1}
JSONObject obj = new JSONObject();
obj.put("pagenum", 1);
obj.put("size", 20);
obj.put("u_id", 1);
String resultContent = getResult("/getPostedWorks", obj.toString());
System.out.println(resultContent);
List<Work> workList = om.readValue(resultContent, new TypeReference<List<Work>>() {});
Pageable pageable = PageRequest.of(0, 20, Sort.by(Sort.Direction.ASC, "w_id"));
assertEquals(workService.getPostedWorks(1, pageable).getContent().size(), workList.size());
对比service层接口结果和controller层结果
postbody: {"pagenum":1, "size":20, "u_id":1}
JSONObject obj = new JSONObject();
obj.put("pagenum", 1);
obj.put("size", 20);
obj.put("u_id", 62);
String resultContent = getResult("/getFinishedWorks", obj.toString());
System.out.println(resultContent);
List<Work> workList = om.readValue(resultContent, new TypeReference<List<Work>>() {});
Pageable pageable = PageRequest.of(0, 20, Sort.by(Sort.Direction.ASC, "w_id"));
assertEquals(doWorkService.getWorkerWorks(1, pageable).getContent().size(), workList.size());
用mockbean屏蔽了repository层,只测试dao层。
Administrator admin = new Administrator();
admin.setAId(1);
admin.setName("admin");
admin.setPassword("admin");
admin.setPowerLevel(1);
when(administratorRepository.checkAdmin("admin", "admin")).thenReturn(admin);
assertEquals(admin, administratorDao.checkAdmin("admin","admin"));
测试用例使用管理员”admin“,测试dao层返回结果与预期结果是否一致。
用mockbean屏蔽了repository层,只测试dao层。
User user = new User();
user.setU_id(1);
user.setName("a2atech1");
user.setPassword("123456");
user.setPhone("18201740079");
user.setEMail("[email protected]");
user.setTrueName("a2atech1");
user.setCreditCard("111-222-333");
user.setType(1);
user.setIsBanned(0);
when(userRepository.checkUser("a2atech1", "123456")).thenReturn(user);
assertEquals(user, userDao.checkUser("a2atech1", "123456"));
测试用例使用了一个user用户,测试是否能通过用户名和密码返回该用户。
User user = new User();
user.setU_id(1);
user.setName("a2atech1");
user.setPassword("123456");
user.setPhone("18201740079");
user.setEMail("[email protected]");
user.setTrueName("a2atech1");
user.setCreditCard("111-222-333");
user.setType(1);
user.setIsBanned(0);
when(userRepository.checkDuplicate("a2atech1")).thenReturn(user);
assertEquals(user, userDao.checkDuplicate("a2atech1"));
测试用例使用了一个用户,测试能否通过用户名查找出该用户。
User user = new User();
user.setU_id(1);
user.setName("a2atech1");
user.setPassword("123456");
user.setPhone("18201740079");
user.setEMail("[email protected]");
user.setTrueName("a2atech1");
user.setCreditCard("111-222-333");
user.setType(1);
user.setIsBanned(0);
userDao.addUser(user);
verify(userRepository, times(1)).save(user);
测试插入一个用例后,repository层是否执行了一次save操作。
User user = new User();
user.setU_id(1);
user.setName("a2atech1");
user.setPassword("123456");
user.setPhone("18201740079");
user.setEMail("[email protected]");
user.setTrueName("a2atech1");
user.setCreditCard("111-222-333");
user.setType(1);
user.setIsBanned(0);
when(userRepository.findByName("a2atech1")).thenReturn(user);
assertEquals(user, userDao.findByName("a2atech1"));
测试能否通过名字查找到相应用户的所有信息。
List<Work> workList = new ArrayList<Work>();
List<Work> workList1 = new ArrayList<Work>();
workList = workDao.findByTitle("Web development");
workList1 = workRepository.findByTitle("Web development");
assertEquals(workList.size(), workList1.size());
对比dao层与repository接口结果
Work work = workDao.findByWId(1);
Work work1 = workRepository.getOne(1);
assertEquals(work.getTitle(), work1.getTitle());
```java Work work = new Work(); work.setTitle("test project"); Timestamp timestamp = new Timestamp(System.currentTimeMillis()); work.setDescription("This is a test project"); work.setPaymentLower(20.0); work.setPaymentHigher(30.0); work.setBiddingDdl(timestamp); work.setFinishDdl(timestamp); work.setUId(1); workDao.save(work); Work work1 = workRepository.getOne(work.getW_id()); assertEquals(work.getTitle(), work1.getTitle());
save测试,尝试插入数据,再查询对比
##### getWorks:
```java
Pageable pageable = PageRequest.of(0, 20, Sort.by(Sort.Direction.ASC, "w_id"));
List<Work> workList = workDao.getWorks(pageable).getContent();
System.out.println(workList.size());
System.out.println(workList);
assertEquals(workList.size(), 20);
分页查询,观察是否取到预期数据量