Хорошо, так что я довольно новичок в тестировании и Spring Boot в целом, поэтому, пожалуйста, исправьте меня, если я делаю что-то совершенно не так, в первую очередь.
Как проект, который я и моя команда делаем веб-приложение, использующее Spring Boot, где мы выполняем вызовы 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, чтобы сделать запрос go на mockserver и вернуть некоторые значения, которые я настраиваю.
Я пытался сделать и то и другое, но я не могу сделать макеты GraphServiceClient, потому что это не Бин в моем проекте, поэтому я не могу понять, как мне следует приступить к созданию реализации, которую я могу автоматически связать в моей службе.
Когда дело доходит до WireMock, я даже не уверен, что понимаю, способен ли он делать то, что я хочу, и если это так, я точно не смог правильно его настроить (обратите внимание, что мы используя JUnit 5 для этого проекта). Простого примера, когда вы делаете GET-запрос к Google.com и возвращаете «Hello» через WireMock, достаточно для того, чтобы я тут оказался.
Любые конкретные примеры того, что я должен сделать, или даже просто кивок правильное направление будет хорошо оценено.