下面是控制器的方法
@RequestMapping("addWorkout")
public String addWorkout(ModelMap modelmap,HttpSession session) {
LOGGER.info("Inside addWorkout,Start");
int userId=(int)session.getAttribute("userId");
// modelmap.addAttribute("userId",id);
List<Workout> workoutList = workoutRepo.findByUserId(userId,Sort.by(new Sort.Order(Direction.DESC, "date"), new Sort.Order(Direction.DESC, "startTime")));
modelmap.addAttribute("workoutList", workoutList);
modelmap.addAttribute("exerciseList", exerciseRepo.findAll());
LOGGER.info("Inside addWorkout,end");
return "AddWorkout";
}
当调用下面的代码行时,我如何编写?它可以是SORT参数workoutRepo.findByUserId(userId,Sort.by(new Sort.Order(Direction.DESC, "date"), new Sort.Order(Direction.DESC, "startTime")));
任何简单类型的匹配
下面是我为上述控制器方法编写的测试方法
@Test
void addWorkoutTest() {
int userId = 1;
List<Workout> mockWorkoutList = new ArrayList<>();
List<Exercise> mockExerciseList = new ArrayList<>();
when(exerciseRepo.findAll()).thenReturn(mockExerciseList);
when(session.getAttribute("userId")).thenReturn(userId);
String result = workoutController.addWorkout(modelMap, session);
verify(exerciseRepo, times(1)).findAll();
verify(session, times(1)).getAttribute("userId");
verify(modelMap, times(1)).addAttribute("workoutList", mockWorkoutList);
verify(modelMap, times(1)).addAttribute("exerciseList", mockExerciseList);
assertNotNull(result);
}`
我不确定如何处理SORT参数部分。寻找在when()调用中处理SORT参数的不同方法。任何示例都将帮助我学习when(workoutRepo.findByUserId(anyInt(), ) ).thenReturn(mockWorkoutList);
1条答案
按热度按时间6ie5vjzr1#
userId
是一个int类型,Sort
覆盖了boolean equals(Object)
,所以你可以直接匹配精确的参数:您也可以使用
eq
匹配器(Matchers.eq
):或者如果你不关心实际值的话,用
any()
匹配: