我正在开发一个代码库,它试图对远程服务进行REST调用,该服务返回JSON。当它恢复正常的JSON时,调用工作正常。在某些情况下,就像网络爆炸时一样,它会返回HTML,它会尝试报告各种网络问题。
我们在客户端中的错误处理代码需要正确处理这种情况,这种情况被定义为简单地获取HTML字符串并进行记录。
我觉得为此编写自动化测试有点困难。
在我们的客户端代码中,我们使用ClientBuilder.newBuilder()...
,然后调用“build()
”,它返回客户端,然后我们调用“client.target(url)
”,然后继续获取响应。我们有一个异常处理程序,它将尝试读取原始文本。
在测试这种事情时,我习惯使用CXF JAXRSServerFactoryBean
类来运行服务器。我知道如何将客户端连接到服务器,但我不确定在服务器中配置什么以允许我返回任意文本,而不是“资源类”。
使用JAXRSServerFactoryBean
也可能因为它需要返回纯文本而过度杀伤。
我有什么选择?
更新:
我确实在使用JAXRSServerFactoryBean设置测试方面取得了进展,但我仍然想知道是否还有其他选项,尤其是那些可以缓解我发现的下一个问题的选项,如Using javax.ws.rs.client.ClientBuilder in CXF to create Client, any route to be able to use local transport?所述。
更新:
我放弃了JAXRSServerFactoryBean方法,因为我不需要测试网络,这样做会增加额外的复杂性。 JAX-RS滤波器方法更简单,避免了这些复杂情况。有关详细信息,请参阅上述链接问题。