【发布时间】:2023-03-19 21:30:01
【问题描述】:
好的,总的来说,我对测试和 Spring Boot 还很陌生,所以如果我首先在这里做错了什么,请纠正我。
作为一个项目,我和我的团队正在使用 Spring Boot 创建一个 Web 应用程序,我们正在其中调用我们的一些服务中的 Microsoft Graph API。请参阅此服务以取消用户日历中的事件:
import com.microsoft.graph.authentication.IAuthenticationProvider;
import com.microsoft.graph.models.extensions.IGraphServiceClient;
import com.microsoft.graph.requests.extensions.GraphServiceClient;
import org.springframework.stereotype.Service;
@Service
public class CancelEventService {
public void cancelEvent(final String token, final String id) {
IAuthenticationProvider authenticationProvider = iHttpRequest -> iHttpRequest.addHeader("Authorization", "Bearer " + token);
IGraphServiceClient graphServiceClient = GraphServiceClient.builder().authenticationProvider(authenticationProvider).buildClient();
graphServiceClient.me().events(id)
.buildRequest()
.delete();
}
}
这很好用,但是我已经为如何为此编写单元测试而苦苦挣扎了几天。在我看来,我想制作 GraphServiceClient 的模拟,或者使用 WireMock 之类的工具将请求发送到模拟服务器并返回我配置的一些值。
我都尝试过,但我无法模拟 GraphServiceClient,因为它不是我项目中的 Bean,所以我不知道应该如何继续进行我可以自动装配到我的实现服务。
当谈到 WireMock 时,我什至不确定我是否了解它是否能够做我想做的事情,如果是的话,我肯定无法正确配置它(请注意,我们使用的是 JUnit 5对于这个项目)。一个简单的示例,您向 Google.com 发出 GET 请求并通过 WireMock 返回“Hello”就足够了。
任何关于我应该做什么的具体例子,甚至只是向正确方向点头,都将不胜感激。
【问题讨论】:
标签: java spring-boot microsoft-graph-api junit5 wiremock