【发布时间】:2020-05-23 06:27:46
【问题描述】:
我正在 Spring Boot 中实现单元测试,但我无法让它们工作。
这是我在 RouletController 类中的方法。
@PutMapping("/open_roulette/")
public ResponseEntity<?> enableRoluette(@RequestParam("id") Long id) {
return rouletteService.enableRouletteById(id);
}
这是我在 RouletteService 类上的方法。
@Override
public ResponseEntity<?> enableRouletteById(Long roulette_id) {
Optional<Roulette> roulette = rouletteRepository.findById(roulette_id);
HashMap<String, Object> response = new HashMap<String, Object>();
if (roulette.isPresent()) {
Roulette request = roulette.get();
{
if (!request.isRouletteStatus())
request.setBets(null);
}
request.setRouletteStatus(true);
rouletteRepository.save(request);
response.put("message", "La ruleta ha sido activada con éxito");
response.put("roulette", request);
return new ResponseEntity<Map<String, Object>>(response, HttpStatus.CREATED);
} else {
response.put("message", "La apuesta no es correcta");
response.put("error", HttpStatus.BAD_REQUEST);
return new ResponseEntity<Map<String, Object>>(response, HttpStatus.BAD_REQUEST);
}
}
这是我的测试方法 RouletControllerTest 类,我正在尝试做这样的事情,但我得到“方法 thenReturn 不适用于参数等。
@Test
public void testEnableRoluette() {
HashMap<String, Object> response = new HashMap<String, Object>();
ResponseEntity<?> responseEntity = new ResponseEntity<Map<String, Object>>(response, HttpStatus.CREATED);
Mockito.when(rouletteService.enableRouletteById(14L)).thenReturn(responseEntity);
assertEquals(rouletteController.enableRoluette(14L), responseEntity);
}
谢谢。
【问题讨论】:
标签: spring-boot unit-testing junit mockito