我一直在使用 Cucumber 以 BDD 方式实施多个 REST API 测试,并且正在考虑一种Activity
可以通过端点检索具有特定 ID 的对象的情况GET
。在互联网上找到的一个示例首先检查活动列表是否可用,然后再实际检索该特定 ID。
因此,场景(在功能文件中)如下所示:
Scenario: When user requests for an existing activity id, the activity should be returned
Given A list of activities is available
When The user requests for an activity with a specific id
Then The requested activity should be returned
在该Given
步骤中,我将向GET
我的 API 发送请求,以检查是否可以提供活动。在该When
步骤中,我将请求特定活动(提供其 ID),而在该Then
步骤中,我将执行我的断言。
其他来源指出,不建议在Given
步骤中直接与 API 交互,而只需准备内部数据(如内部创建对象或生成要插入的 id),然后将其发送给Then
实际上应该与外部系统进行交互。
我的问题是:对于该步骤中应该做什么Given
和不应该做什么,是否有具体的规则?例如,如果我考虑在获取具有特定 ID 的活动之前,我应该将其插入,并检查插入是否成功,那么我是否不允许POST
在Given
语句中编写逻辑?如果是这样,这是否意味着Given
对于简单的 API,大多数实现都将是空的?