我正在尝试创建一个声明性客户端来测试我用grails 4编写的API,就像您可以在micronaut中这样做一样。
据我所知,如果您在编译时知道基本URL,则可以创建一个声明性客户端。因为grails函数(集成)测试在随机端口上创建了一个服务器,所以您无法事先知道该端口并使用@Client('http://localhost:8080')注释。
使用@Client('http://localhost:${local.server.port}')之类的东西会失败,grails抱怨无法查找配置属性。
我遗漏了什么吗?
发布于 2021-03-08 20:23:43
在grails 4功能API测试中可以使用Micronnaut声明式HTTP客户端吗?
它是。
这样做的一个问题是,当使用@Client('/')连接到本地运行服务器时,需要在上下文中配置EmbeddedServer bean,以回答应用程序在哪个端口上运行的问题。一些相关代码位于https://github.com/micronaut-projects/micronaut-core/blob/458bbf07221407abe7e283815fb62b7b4d1fc224/http-client-core/src/main/java/io/micronaut/http/client/DefaultLoadBalancerResolver.java#L93。
我们将添加测试支持以使这更容易,但您可以通过自己注册bean来使其工作。见以下内容:
这是目前的一个传说,但我相信,在测试框架中发布适当的支持之前,它将起作用。
https://stackoverflow.com/questions/66534406
复制相似问题