BDD黄瓜Web服务

时间:2017-12-09 10:53:26

标签: java web-services cucumber bdd jolokia

我已经阅读了一些关于如何使用cuuumber实现BDD的文章,但我无法完全理解。

假设我有服务

/v1/picture?viewer=1&viewed=2&flag=1

对于这3个输入,我正在寻找输出为“1.jpg”

我正在寻找

  1. 我们如何实施上述? - 即基于输入的输出
  2. 我们如何构建数据? - mysql数据基本存根
  3. 请帮助举例和良好的链接。 感谢

1 个答案:

答案 0 :(得分:1)

很难回答你的问题,因为关于你想要实现的目标没有太多细节,但我会试一试。

你有三种不同的输入: - 观众 - 是否被查看过 - 一面旗帜。

因此,这些输入为场景提供了不同的上下文(Givens)。

  • 鉴于.jpg查看器
  • 鉴于我已经看过两次图像
  • 鉴于图片已被标记

如何设置这些数据的数据完全取决于您。你可以硬编码,使用mysql数据或使用管理控制台输入实际数据等。这应该没关系。您感兴趣的行为是应用事件时发生的事件(何时):

  • 当我检索v1图片时

据推测,您的上下文中提供的输入是相关的,并将根据该输入提供不同的结果(Thens)。

  • 然后我应该看到一个.jpg文件
  • 然后我应该看到“Image flagged”横幅
  • 然后我应该看到“已浏览2次”消息

所以我可能有以下情况:

Given a .jpg viewer  
And an image that's been viewed 3 times  
When I retrieve the v1 picture  
Then the service should give me 1.jpg  
And I should see the message "Viewed 3 times"  

Given a .png viewer  
When I retrieve the v1 picture  
Then the service should give me 1.png

我不知道你的真实服务在做什么,但希望这可以帮助你看到模式。尝试在场景中分离行为的不同方面(更像是第2节而不是第1节),除非您需要举例说明组合。