c# - 如何在微服务架构中进行集成测试

标签 c# azure asp.net-web-api integration-testing microservices

我正在寻找在微服务中进行集成测试的模式/最佳实践。下面是我的背景的快速描述。

  1. 微服务 A 依赖于
    A。 azureAD 用于身份验证
    b.用于授权的微服务B
  2. 微服务 B 与 azure sql Db 进行对话,以获取用户/角色/权限的 CRUD + 公开端点以检查 1 使用的权限。此服务也受到 azure AD 身份验证的保护

针对这种情况创建集成测试的最佳方法是什么? ?欢迎任何引用或指导。一些问题:

a.模拟什么,不模拟什么
b.设置拆卸策略
C。其他

最佳答案

需要考虑三种一般方法:

  1. 不要进行集成测试。只需模拟一切并进行单元测试即可。
  2. 使用真实数据针对微服务的沙箱(非 PROD)部署进行集成测试
  3. 使用虚假数据(被其他服务称为虚假数据)针对 PROD 部署进行集成测试

各有利弊。

3) 需要一些跨团队协调,以确保每个微服务都有一些已知的输入,这些输入将被视为“仅测试”,但最准确地模拟真实的用例。

2)不需要太多的跨团队协调,并且不会出现中断服务或意外添加垃圾数据的可能性。

1) 是最脆弱的,只能确保您的应用程序可以处理预期的(当时)输入/输出数据。

寻求您的组织 DevOps 和开发成熟度将支持的最佳策略。

回答您的详细问题:

  • a.您只需要模拟与#1 的集成。 #2 和 #3 是真实的。
  • b. #2 和 #3 的设置和拆卸应该简单地注入(inject) 端点
  • c.测试您的所有用例。确保你击中了每一个 调用您使用的方法。

关于c# - 如何在微服务架构中进行集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42354108/

相关文章:

c# - 捕获在 Using block 的目标对象的构造函数中抛出的异常

c# - const 多维数组初始化

java - com.microsoft.azure.documentdb.DocumentClientException 日期 header 不符合所需的格式

azure - 访问azure云服务中的某个文件夹

c# - 如何删除 ASP.NET 网站上的 cookie

c# - 使用 WebClient 时如何强制执行 SSL?

c# - 分析 Azure 辅助角色

sql-server - 使用 Entity Framework 发布 Web API 时出错

c# - Api Controller 可以工作,但 web razor Controller 不能使用 owin

c# - WebApi 中的默认 HTTP 动词是什么?获取还是发布?