背景
你已经使用了微服务架构 。应用中存在很多服务。服务经常调用其他服务。你需要写自动化测试验证服务行为正常。
问题
如何简单的测试一个服务?
限制
- 端到端测试(即测试访问了多个服务)是困难,缓慢,脆弱和昂贵的。
解决方案
测试用例利用模拟测试,隔离的测试服务。
示例
Spring Cloud Contract 是支持这种测试风格的开源项目。
结果
这个模式有如下优势:
- 隔离测试服务,更简单,快速,可靠和廉价
这个模式有如下弊端:
- 测试可能通过,但是应用在生产环境失败
这个模式有如下问题:
- 怎么确保模拟测试总是正确的模拟调用服务的行为?
相关模式
- 参见服务集成契约测试