首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ATDD与微服务(包括REST和消息传递)

ATDD与微服务(包括REST和消息传递)
EN

Stack Exchange QA用户
提问于 2017-01-09 13:00:53
回答 1查看 317关注 0票数 2

如果没有UI,我知道验收测试驱动的开发仍然可以针对API等执行(如果你愿意的话,这是一种无头的垂直切片开发和测试),但是我们在哪里划定我们正在测试的事物的界限(我知道,我know...it依赖!)

我们应该采用端到端测试还是组件式测试?或者两者兼而有之(如果是后者,我们如何处理测试中出现的问题?)

给定一个REST,该API创建要异步使用的命令,消息传递端点基于命令执行某些操作,这些操作都驻留在同一个Microservice中。在我看来,边界位于REST的输入和消息端点的输出。

从Microservice的角度来看,我可以推送一个请求并从后面获取一条消息(模拟与最近的邻居的交互),使我在端到端的样式测试中处于结束状态,并且已经这样做了。但是这个缺点是我们开始创建一个小时的玻璃而不是一个测试三角形,如果我要ATDD所有这样的特性。这是一种公平的批评

对于不执行昂贵的HTTP调用、消息传递或数据库(这是非常公平的)已经出现了一点争论,这更像是端到端的测试风格(例如GOOS中最喜欢的),而是使用组件风格的测试,但是这样做会忽略消息传递方面,除非消息传递的测试双执行非常聪明。

有没有人有任何方法的经验,或考虑。

EN

回答 1

Stack Exchange QA用户

发布于 2017-11-05 15:50:33

根据我的经验,对于测试驾驶的每个用例,您可以通过以下ATDD方法实现良好的平衡:

  1. 通过与微服务的超线API (例如REST、JMS队列)交互来编写第一个测试。这个测试会给你信心,让你相信“幸福之路”是最终成功的。
  2. 使用服务虚拟化为该测试提供过线测试双倍。您可以在这里做一些高级的事情,例如在微服务和测试之间捕获消息并呈现输出(下面是这种方法的一个例子 )
  3. 如果有任何边缘情况需要测试,为它们编写单元测试,但仍然使用给定的时-然后样式。记住,“单位”不一定意味着“一个类别”。如果您正在编写类似于洁净建筑的代码,那么您应该能够编写一个测试,就像它是端到端的一样,但是为所有通常是过线的部分提供在记忆测试中加倍
  4. 如果您正在进行验收测试,则在超出线的测试和单元级测试之间进行提供一个链接,以便从文档的角度很容易地看到系统端到端的行为以及该用例的所有单元级边缘用例是什么。
票数 1
EN
页面原文内容由Stack Exchange QA提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://sqa.stackexchange.com/questions/24795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档