首页 > 解决方案 > 带有 spring boot 石英调度器的控制器 - 集成测试

问题描述

我必须在使用石英调度程序的控制器上执行集成测试,但我不知道如何执行测试。我已经搜索了互联网,我已经看到了如何制作一个石英模拟,但我不知道如何测试我的控制器,它用石英安排事件。知道我该怎么做吗?

控制器:

@PostMapping(path="/event/{id}")
  public ResponseEntity<?> processEvent (@Parameter(description = "Identifier of the event") 
  @PathVariable(name = "id", required = true) String id) {
    response = schedulerService.processEvent(id); 

服务实现:

try {
          JobDetail jobDetail = buildJobDetail(id);
          Trigger trigger = buildJobTrigger(jobDetail, zonedDateTime);
          scheduler.scheduleJob(jobDetail, trigger);
          response.setMsg("Scheduler created");
}

当前测试(设计不佳,因为使用“job-store-type:jdbc”属性,它需要oracle才能工作,我需要它不依赖oracle进行测试)

  public void testPostEvent() {
    ResponseEntity<String> responseEntity = this.restTemplate
    .postForEntity("http://localhost:" + port + "/event/event005", null, String.class);
    assertEquals(200, responseEntity.getStatusCodeValue());
  }

标签: spring-bootmockingintegration-testingquartz-scheduler

解决方案


推荐阅读