微服务测试:进程内组件(单个微服务)测试

时间:2017-11-30 10:57:12

标签: testing microservices

我正在探索个人微服务测试&我找到了一位好导游https://martinfowler.com/articles/microservice-testing/#testing-component-in-process-diagram。这篇文章表明,有一种方法可以测试各个微服务"进程中"。

这意味着测试& service将在同一进程中执行,它还提供可以使用的lib。但是我无法理解以下事情 1)究竟如何"在进程中"测试将在微服务架构中工作 2)关于如何使用" inproctester"的任何指示。库。

由于

1 个答案:

答案 0 :(得分:0)

这可以通过在进程中托管您的API,在进程中进行交互,同时在API的边缘使用测试双精度,或者使用测试双精度进行外部协作者来实现。

这允许在测试(单元/集成,取决于观点)中测试API(及其核心行为),而不会遇到网络或数据库或文件系统。

此测试将提供覆盖范围,但显然不是您需要的所有覆盖范围

在.NET核心中,您可以使用Microsoft.AspNetCore.TestHost包中包含的TestServer

如果您的API足够简单,您可以减少测试类型(N.B.我不建议减少覆盖范围)
您在第8/25页提到的幻灯片中提到了这种方法

改写。如果API中的逻辑很小,则组件测试可能有利于隔离和社交单元测试

这种方法也推荐在Spotify" Honeycomb"风格测试。他们称之为API集成测试的组件测试(巧合的是微软在他们的测试中使用TestServer时也会调用它(具体示例的第二个链接)

我认为该方法的主旨(无论其具体名称如何)是在过程测试中是快速的,并且外部合作者被替换为测试双打。

值得注意的一点是"过程中"组件测试基本上是端到端测试,但所有外部协作者都与测试双打交换。

这些可能比过程组件测试慢一点,但是运行了更多的#34;堆栈"。我建议如果你要进行最终测试,我会尝试尽可能多地进行流程组件测试。