指定mock获取null并调用else块

问题描述 投票:0回答:1

我是 Java 新手,一直在寻找答案,但我一定想念它。那么问题来了:

这是我的控制器:

public REntity<IModel> getPersonById(
        @PathVariable("id") @Parameter(description = "The id to retrieve") String id) {

        IModel response = this.myService.getPersonById(id);
        if (response != null) {
            return REntity.ok().body(response);
        } 
        else {
            return REntity.notFound().build();
        }
    }

测试方法内容:

mockMvc.perform(get("/issuers/{id}", "123")).andExpect(status().is(404));

如何调用 else 块?我无法将 null 传递给 id 参数。该服务也不返回 null。 是否有调用服务时返回 null 的模拟?

spring-boot spring-mvc controller mockito spring-mvc-test
1个回答
0
投票

您将需要创建一个服务的模拟,对于给定的 id 返回 null:

final MyService myService = mock(MyService.class);
when(myService.getPersonById("123").thenReturn(null);
© www.soinside.com 2019 - 2024. All rights reserved.