【发布时间】:2021-06-29 08:22:53
【问题描述】:
我有以下方法:
public HttpResponse<String> sendMessage(@NonNull String url, @NonNull String message) {
try (HttpClient client = HttpClient.create(new URL(url))) { ... }
}
基本上,我想要实现的是使用作为方法参数的 URL 创建 HttpClient。它不能是配置文件中的属性,因为它取决于一些外部条件。 如果我检查 HttpClient.create() 方法的文档,它说它不应该在 Micronaut 环境中使用,而是应该注入客户端。但是,问题是如果它被注入,我无法使用我的自定义 URL 对其进行初始化。
另一个问题是,如果我用 HttpClient.create() 方法保留它,如果我想对类进行单元测试,我无法模拟 HttpClient。最好的选择是通过构造函数注入它以便能够创建测试。
我有什么选择?我一直无法找到这种类型的初始化。看起来每个人都使用修复 URL? ????
谢谢!
【问题讨论】: