Spring 启动 MockMvc post 没有进入真正的控制器方法

Spring boot MockMvc post not enter to real conntroller method

我有控制器方法

@PostMapping(value = "/getTransaction/{transactionUuid}")
  public ResponseEntity<TransactionDetail> getTransaction(@PathVariable() String transactionUuid) {
    return ResponseEntity.ok(transactionsService.getOpcTransaction(transactionUuid));
  }

我为控制器编写测试:

@Autowired
  private MockMvc mockMvc;

  @Test
  public void test() throws Exception {
    mockMvc.perform(post("/nfp-server/getTransaction/{transactionUuid}", "123"))
      .andDo(print());
  }

我在调试模式下开始测试 - 但我没有进入控制器 getTransaction 方法。在日志中我看到:

MockHttpServletRequest:
      HTTP Method = POST
      Request URI = /server/getTransaction/123
       Parameters = {}
          Headers = {}

在您的控制器中,您的映射是

/getTransaction/{transactionUuid} 

在你的测试中class你通过了

 /nfp-server/getTransaction/{transactionUuid}

不匹配。