我正在开发一个连接到外部服务的 Java HTTP 客户端类(使用 Apache HttpComponents)。我需要确保我的客户端实现在服务器端意外开始工作时保持可预测的行为,例如突然断开连接、格式错误的响应、不一致的标头、超时等情况。
运行测试时如何可靠地模拟这种情况?我不介意连接到有故障的远程服务器,但在本地工作的解决方案会更好。
我正在开发一个连接到外部服务的 Java HTTP 客户端类(使用 Apache HttpComponents)。我需要确保我的客户端实现在服务器端意外开始工作时保持可预测的行为,例如突然断开连接、格式错误的响应、不一致的标头、超时等情况。
运行测试时如何可靠地模拟这种情况?我不介意连接到有故障的远程服务器,但在本地工作的解决方案会更好。
试试 Arquillian ( http://arquillian.org/ ) 框架。可能适合您的需求。
我建议创建一个模拟器,它将模拟与您的服务器相同的行为。以这样一种方式对其进行编码,以便它将针对同一请求一一发送上述响应,以便您能够测试所有响应消息。如果您知道实际服务器可以针对所有这些条件发送哪些响应,您还可以在模拟器中对响应进行硬编码。