gpt4 book ai didi

java - 如何避免在集成测试期间调用 Slack webhook

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

我们的 Spring-Boot 应用程序正在调用 Slack webhook,以便将一些消息发布到 Slack channel :

new RestTemplate().postForObject(slackChannel, new HttpEntity(...), String.class);

我们的挑战是如何在应用的测试阶段调用Slack

单元测试阶段,我们注入(inject)并模拟 Slack 服务,因此不会向 Slack 发送任何内容,一切正常。

问题出在集成测试期间,当系统作为一个整体运行时,我们肯定不希望消息实际发送到 Slack。

一种选择是注入(inject) webhook 的错误 URL,但随后我们会得到一个

org.springframework.web.client.HttpClientErrorException$Forbidden: 403 Forbidden

我们当然可以用 Try + Catch 包装调用代码,但这看起来很尴尬。

最佳答案

所以,我们找到的解决方案是这样的:

  1. 我们以异步方式调用 sendToSlack 方法
  2. 我们使用虚假网址作为 Webhook 网址(例如 http://noslack.com)

这样,在运行集成测试时,应用程序将尝试向 Slack 发送消息,但失败,但由于它将在不同的线程中运行,因此不会影响应用程序本身。

这不是 100% 完美的解决方案,因为应用程序的日志现在包含有关 slack 调用的错误(在测试/开发阶段运行时)

关于java - 如何避免在集成测试期间调用 Slack webhook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57706703/

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