You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microsoft Graph Java SDK 6.4.0如何设置Wiremock URL用于集成测试?

在Microsoft Graph Java SDK 6.4.0中替换服务根地址(适配WireMock测试)

针对SDK 6.x版本移除setServiceRoot方法的情况,你可以通过以下两种方式修改服务根地址,实现WireMock替代真实API调用:

方法1:通过ClientOptions直接配置自定义服务根

在构建GraphServiceClient时,利用ClientOptions指定WireMock的服务地址,这是最直接的方式:

// WireMock本地服务地址,根据实际端口调整
String wireMockBaseUrl = "http://localhost:8080/v1.0";

ClientOptions clientOptions = new ClientOptions();
clientOptions.setBaseUrl(wireMockBaseUrl);

// 构建客户端时传入配置(测试环境可使用匿名认证跳过身份验证)
GraphServiceClient graphClient = GraphServiceClient.builder()
    .authenticationProvider(new AnonymousAuthenticationProvider())
    .clientOptions(clientOptions)
    .buildClient();

方法2:自定义HttpClient拦截重定向请求

如果需要更灵活的URL替换逻辑(比如仅替换域名保留路径),可以自定义HttpClient拦截请求并修改目标URI:

HttpClient customHttpClient = HttpClient.createDefault().mutate()
    .addInterceptorFirst((HttpRequestInterceptor) (request, context) -> {
        URI originalUri = request.getUri();
        // 替换域名部分为WireMock地址,保留原请求路径
        URI wireMockUri = URI.create("http://localhost:8080" + originalUri.getPath());
        request.setUri(wireMockUri);
    })
    .build();

// 注入自定义HttpClient构建客户端
GraphServiceClient graphClient = GraphServiceClient.builder()
    .authenticationProvider(new AnonymousAuthenticationProvider())
    .httpClient(customHttpClient)
    .buildClient();

测试提示

  • 测试环境建议使用AnonymousAuthenticationProvider,避免真实身份验证流程干扰测试。
  • 确保WireMock已提前启动,并配置好与SDK请求匹配的Mock接口(路径、请求方法、响应内容)。

内容的提问来源于stack exchange,提问作者Nicholas DiPiazza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 07:49:53