我正在寻找在微服务中进行集成测试的模式/最佳实践。下面是我的背景的快速描述。
- 微服务 A 依赖于
A。 azureAD 用于身份验证
b.用于授权的微服务B - 微服务 B 与 azure sql Db 进行对话,以获取用户/角色/权限的 CRUD + 公开端点以检查 1 使用的权限。此服务也受到 azure AD 身份验证的保护
针对这种情况创建集成测试的最佳方法是什么? ?欢迎任何引用或指导。一些问题:
a.模拟什么,不模拟什么
b.设置拆卸策略
C。其他
最佳答案
需要考虑三种一般方法:
- 不要进行集成测试。只需模拟一切并进行单元测试即可。
- 使用真实数据针对微服务的沙箱(非 PROD)部署进行集成测试
- 使用虚假数据(被其他服务称为虚假数据)针对 PROD 部署进行集成测试
各有利弊。
3) 需要一些跨团队协调,以确保每个微服务都有一些已知的输入,这些输入将被视为“仅测试”,但最准确地模拟真实的用例。
2)不需要太多的跨团队协调,并且不会出现中断服务或意外添加垃圾数据的可能性。
1) 是最脆弱的,只能确保您的应用程序可以处理预期的(当时)输入/输出数据。
寻求您的组织 DevOps 和开发成熟度将支持的最佳策略。
回答您的详细问题:
- a.您只需要模拟与#1 的集成。 #2 和 #3 是真实的。
- b. #2 和 #3 的设置和拆卸应该简单地注入(inject) 端点
- c.测试您的所有用例。确保你击中了每一个 调用您使用的方法。
关于c# - 如何在微服务架构中进行集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42354108/