【问题标题】:Spring Boot JUnit5: TypeCast MockingSpring Boot JUnit5:TypeCast 模拟
【发布时间】:2021-06-17 13:12:18
【问题描述】:

考虑下面的代码,

JAXBElement<Response> jaxb=(JAXBElement<Response>) service.getResponse("abc",2000); //getResponse return an Object.

Response resp=jaxb.getValue(); // Null Pointer Exception

现在在 JUnit 中,我正在模拟“service.getResponse(...)”

@Mock
Service service;

when(service.getResponse(anyString(),anyInt()).thenReturn(new Response("value"));

为什么我在这里得到 NullPointerException?这不是模拟给定行的方法吗?

【问题讨论】:

  • 您的服务返回(如已转换)JAXBElement?但是 mock 会返回 Response?

标签: java spring-boot junit mockito


【解决方案1】:

您还必须模拟响应。

JAXBElement<Response> jaxb=(JAXBElement<Response>) service.getResponse("abc",2000); //getResponse return an Object.

Response resp=jaxb.getValue(); // Null Pointer Exception

Junit 在这里,

@Mock
Service service;

JAXBElement response = mock(JAXBElement.class);
when(service.getResponse(anyString(),anyInt()).thenReturn(response);
when(response.getValue()).thenReturn(something);

【讨论】:

    猜你喜欢
    • 2021-08-11
    • 2018-06-09
    • 2017-07-29
    • 1970-01-01
    • 2018-03-09
    • 2018-03-09
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多