Skip to content

Latest commit

 

History

History
264 lines (196 loc) · 6.54 KB

测试文档.md

File metadata and controls

264 lines (196 loc) · 6.54 KB

测试文档

接口测试

controller:

WorkController:

Helper function:

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;
}
postWork
测试用例
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());

直接访问数据库,查询插入结果。

getWorks

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层接口的结果

getPostedWorks

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层结果

getFinishedWorks

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());

DaoImpl:

AdministratorDaoImpl:

用mockbean屏蔽了repository层,只测试dao层。

checkAdmin:
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层返回结果与预期结果是否一致。

UserDaoImpl:

用mockbean屏蔽了repository层,只测试dao层。

checkUser:
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用户,测试是否能通过用户名和密码返回该用户。

checkDuplicate:
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"));

测试用例使用了一个用户,测试能否通过用户名查找出该用户。

addUser:
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操作。

findByName:
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"));

测试能否通过名字查找到相应用户的所有信息。

WorkDaoImpl:

findByTitle:
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接口结果

findByWId:
Work work = workDao.findByWId(1);
Work work1 = workRepository.getOne(1);
assertEquals(work.getTitle(), work1.getTitle());
save:

​```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);

分页查询,观察是否取到预期数据量