我正在学习使用Cucumber,并具有以下情况:
Given a standard party
And a flight from "uk" to "europe"
When I search
And I receive search results
Then I can book my holiday
在第二步的步骤定义中,我使用JDBI查询数据库,并接收一个数据集,该数据集可以进行迭代并将其用作向其发送请求的API中的步骤3的搜索数据。在查询的前2或3行中不接收任何结果是很常见的。这对我没有用,因为该场景并未真正测试是否返回结果(尽管显然是有效的场景)。
我真正想要的是获得结果,然后断言我可以预定-在Step Def中检查正确的价格等。
所以,如果
And I receive search results
等于false,如何返回
And a flight from.....
...以便我可以尝试下一行数据。
然后,我的查询是在“黄瓜步骤定义”的上下文中进行的,鉴于for循环位于较早的步骤中,这是最佳/惯用的方法是什么?
在不暴露太多Step Def代码的情况下,在这种情况下重试是否有通用约定?我不能简单地再次调用基础搜索方法,因为我有很多搜索步骤Def方法都粘在步骤上,并且“我接收......”在其中接收响应对象没有上一步的概念。