我正在尝试模拟下面的休息调用
restTemplate.exchange(url, HttpMethod.PUT, new HttpEntity<User>(user), void.class);
这是JUNIT的
Mockito.when(restTemplate.exchange(Matchers.any(), Matchers.eq(HttpMethod.PUT), Matchers.any(HttpEntity.class), Matchers.eq(Void.class))).thenReturn(new ResponseEntity<>(HttpStatus.ACCEPTED));
但问题是当我调试代码时. 即使我从模拟中抛出异常,它也总是返回 NULL。
我不确定我在这里做错了什么
这是因为类
Void
和void.class
不同:
Class<?> c1 = void.class;
Class<?> c2 = Void.class;
System.out.println(c1.equals(c2));
打印false
.
请尝试以下操作:
Mockito.when(restTemplate.exchange(Matchers.any(),
Matchers.eq(HttpMethod.PUT),
Matchers.any(HttpEntity.class),
Matchers.eq(void.class)))
.thenReturn(new ResponseEntity<>(HttpStatus.ACCEPTED));