gpt4 book ai didi

java - 模拟 UriInfo 不起作用

转载 作者:行者123 更新时间:2023-12-01 09:23:29 25 4
gpt4 key购买 nike

我正在尝试设置几个单元测试,但我陷入困境。这是我的服务类别:

@Component
@Scope("request")
@Path("/subscriber/{accNo}/case/")
public class ServiceRest {
@Context
private UriInfo uriInfo;
@Autowired
private ActivationCase actCase;

@POST
@Path("activation")
public Response activate(@PathParam("accNo") String accNo, InputStream jSonInput) {

Integer order = actCase.activateMethod(accNo);
Link link = new Link("order", uriInfo.getBaseUriBuilder().path(OrderRest.class).path("" + order).build().toString(), "GET");
}
}

这是我的测试类:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/myapp-context.xml" })
@WebAppConfiguration
@Ignore
public class ServiceRestTest{
@Autowired
private ServiceRest restClient;
@Autowired
protected OrderServiceImpl orderService;


@Test()
public void testActivationCaseOK() {
UriInfo uriInfo = Mockito.mock(UriInfo.class);
UriBuilder uriBuilder = Mockito.mock(UriBuilder.class);
Mockito.when(uriInfo.getBaseUriBuilder()).thenReturn(uriBuilder);
Mockito.when(orderService.readThings(Mockito.any(Acct.class))).
thenReturn(stuff);

Mockito.when(orderService.maintainPlan(Mockito.any(Order.class))).
thenReturn(stuff2);
Response response = restClient.activateMethod("111111114");
}

谁能解释一下为什么 uriInfo 为 NULL?模拟完成了,它应该返回我的 URIBuilder 否?

谢谢你的帮助

最佳答案

不幸的是,没有任何建议对我有用:/我必须采取解决方法。

因此,为了完成这项工作,我将 @Context private UriInfo uriInfo 移动为每个方法中的参数。

 public Response activate(@PathParam("accNo") String accNo, InputStream jSonInput, @Context UriInfo) {

在我的单元测试中:

    Mockito.when(uriInfo.getBaseUriBuilder()).thenReturn(uriBuilder);
Mockito.when(uriBuilder.path(Mockito.anyString())).thenReturn(uriBuilder);
Mockito.when(uriBuilder.build()).thenReturn(uri);
Response response = restClient.activateMethod("111111114", uriInfo);

感谢您的反馈。我希望这可以帮助将来的人

关于java - 模拟 UriInfo 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40004705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com