【发布时间】:2019-08-29 09:04:23
【问题描述】:
我们的Spring-Boot 应用程序正在调用Slack webhook,以便将一些消息发布到 Slack 频道:
new RestTemplate().postForObject(slackChannel, new HttpEntity(...), String.class);
我们的挑战是如何不在应用程序的测试阶段调用Slack。
在单元测试阶段,我们正在注入和模拟 Slack 服务,因此不会向 Slack 发送任何内容,一切正常。
问题出在集成测试期间,当系统作为一个整体运行时,我们当然不希望消息实际发送到 Slack。
一种选择是注入 webhook 的虚假 URL,但随后我们得到一个
org.springframework.web.client.HttpClientErrorException$Forbidden: 403 Forbidden
我们当然可以用Try + Catch 包装调用代码,但这似乎很尴尬。
【问题讨论】:
标签: java unit-testing spring-boot integration-testing slack-api