背景
你已经使用了微服务架构 。应用中存在很多服务。服务经常调用其他服务。你需要写自动化测试验证服务行为正常。
问题
如何简单的测试出,一个服务提供了客户端期待的API?
限制
- 端到端测试(即测试访问了多个服务)是困难,缓慢,脆弱和昂贵的。
解决方案
由消费服务的开发人员来编写该服务的测试用例。测试用例验证服务满足了消费方的期待。
示例
Spring Cloud Contract 是支持这种测试风格的开源项目。
结果
这个模式有如下优势:
- 隔离测试服务,更简单,快速,可靠和廉价
这个模式有如下弊端:
- 测试可能通过,但是应用在生产环境失败
这个模式有如下问题:
- 如何确保服务消费者提供的测试符合消费者的确切需要?