java - 如何为异步微服务创建验收测试

标签 java php automated-tests microservices acceptance-testing

如果我有微服务,它应该创建用户,但由于用户创建很复杂,它使用队列,而用户实际上是由消费者创建的,端点只接受请求并返回成功或失败。

如何为此验收标准创建验收测试:
给定:想要注册的用户
何时: 请求 api 以创建用户
然后:创建用户并为新用户设置托管 environment_id

为此,我必须等待环境实际设置完毕,这最多需要 30 秒。如果我在我的测试中实现 sleep ,那么我会遇到反模式 wait and see如何在不失败最佳实践的情况下正确测试它?

最佳答案

最恰当的做法可能是,为了立即返回响应,假设“设置进程已启动”(使用设置进程 ID),然后使用另一个 API 方法,该方法将“获取设置状态”(针对该设置进程 ID)-然后在“设置已完成”时继续。

因为,与此类似,无论是在测试中还是在生产中,都不会卡住 30 秒 - 并且可以向用户显示一个进度条,指示当前状态,以便他们估计需要多长时间 -虽然没有得到印象,但有些东西被卡住了或无法工作。

几乎不能异步测试,而设置过程本身不会是异步的;没有任何状态指示器的长时间运行的任务几乎不能接受交付 - 因为这只看起来有效,同时知道后台发生了什么,但在不知道的情况下则不然。

每当测试遇到反模式时,这就是一个指标,表明解决方案可能不是最优的。

关于java - 如何为异步微服务创建验收测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52318727/

相关文章:

java - Spring Security 3.0 Google Apps 使用 OpenID4Java 打开 id 登录

php - MYSQL:除最高和最低值外的总计值然后相乘

在代码中保留断言的 C++ 测试套件

java - 我在 JAVA 中有一个关于 f/d 的查询

java - 在 Mongodb 中使用正则表达式

java - 如何使用网络浏览器制作 P2P 流媒体?

javascript - 如何在 nightwatch.js 中使用循环

php - 字段验证后调用php

java - 从 Java 或 .Net 调用时 PHP WebService 不工作

loops - 如何在柏树中停止循环