【发布时间】:2021-06-28 12:19:29
【问题描述】:
我是 jUnit 和 Mockito 的新手。我对 Void 的模拟如何运作感到非常困惑。 这里如果名字是“hello”,函数会抛出异常。 但是当我测试它时,它并没有抛出异常......
Class MyService{
void validate(MyData data){
if(data.name.equals("hello"))
throw new InvalidInput(HttpStatus.BAD_REQUEST,"invalid");
ResponseEntity<Object> response= // ...RestTemplate call;
if(response.getStatusCodeValue()!=200) throw Exception....
}
}
测试
Class MyTesting{
@Mock
RestTemplate template;
@BeforeEach
void setup(){
//mockitio init..
}
@Test
void TestingMyFunc(){
MyData data = new MyData();
MyService service=mock(MyService.class);
data.setName("hello");
//mocking rest call
when(template.postForEntity(..).then(..));
doThrow(new InvalidInput(HttpStatus.BAD_REQUEST,"invalid")).when(service).validate(data);
}
}
【问题讨论】:
-
你的测试单元是什么?
service?
标签: java spring-boot junit mockito