应该在 API 上给出 GET 请求吗?

问题描述 投票:0回答:1

我一直在使用 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
步骤中,我将向我的 API 发送
GET
请求,以检查是否可以提供活动。在
When
步骤中,我将请求特定活动(提供其 ID),而在
Then
步骤中,我将执行断言。

其他消息来源指出,不建议在

Given
步骤中直接与API交互,只需准备内部数据(例如内部创建对象或生成要插入的id),然后将其发送到
Then
,它实际上应该与外部系统进行交互。

我的问题是:是否有关于

Given
步骤中该做什么、不该做什么的具体规则?例如,如果我认为在获取具有特定 id 的活动之前,我应该将其插入,并检查插入是否成功,那么我是否不允许在
POST
语句中编写
Given
逻辑?如果是这样,这是否意味着大多数
Given
实现对于简单的 API 来说都是空的?

cucumber bdd
1个回答
0
投票

这是一个意见问题。

您在安排部分准备被测系统,给定等。在我看来,您正在使用外部客户端在已经运行的服务器上进行一些黑盒测试。在这种情况下,我不会太担心在给定步骤中执行 POST。除非您可以通过其他渠道检查服务器的状态,也许可以查看数据库或类似的内容。

换句话说,每种情况都是独特的,您需要采取必要的措施来确保实现最终目标,即系统按照最终用户的需要运行。同时,如果可能的话,避免将来的维护噩梦。

© www.soinside.com 2019 - 2024. All rights reserved.