Java RestAssured Cucumber - 在同一场景之间共享变量值 class
Java RestAssured Cucumber - sharing variable value between scenarios in the same class
我已经编写了一些 Rest Assured Cucumber 测试来测试我的 API。我写了 cucumber feature/step 定义文件,执行以下操作:-
添加新类别
更新类别
删除类别。
所以我有一个包含三个场景的单步定义 class。
第一个场景创建一个新类别,我将类别 ID 存储在一个全局范围变量中(该变量在 class 文件的顶部声明)。我将变量写入控制台,以确保它在删除新类别后具有值(确实如此)。场景结束后,它会转到场景 2,尝试更新类别。问题是全局变量的值现在已经变为空,测试失败。
有谁知道是否可以在同一步骤定义 class 文件中在不同场景之间共享全局变量的内容?
在场景之间共享信息是有意为之的。每个场景都是自己的小实验,不应受他人影响。
现在,如果您习惯于编写手动测试脚本,您可能会认为重用东西是有效的。它是。但是计算机要快得多,因此您不必非常高效。而是因为从头开始做所有事情的成本很低,所以效率低下是值得的,可以减少测试意外交互的机会。
所以宁愿考虑写三个不同的场景:
Scenario: Create
Given the things needed to make a category
When a new category is created
Then it has all the things used to make it
Scenario: Update
Given a category with some property
When the property of the category is changed
Then fetching the category again shows the updated
property
Scenario: Delete
Given a category
When the category is deleted
Then the category is not found when fetched
第二个和第三个在给定步骤中创建类别。
现在,如果这是一个在测试后未关闭的系统 运行,您可能还想使用 after hooks 来尝试删除测试完成后创建的任何类别。
我已经编写了一些 Rest Assured Cucumber 测试来测试我的 API。我写了 cucumber feature/step 定义文件,执行以下操作:-
添加新类别 更新类别 删除类别。
所以我有一个包含三个场景的单步定义 class。
第一个场景创建一个新类别,我将类别 ID 存储在一个全局范围变量中(该变量在 class 文件的顶部声明)。我将变量写入控制台,以确保它在删除新类别后具有值(确实如此)。场景结束后,它会转到场景 2,尝试更新类别。问题是全局变量的值现在已经变为空,测试失败。
有谁知道是否可以在同一步骤定义 class 文件中在不同场景之间共享全局变量的内容?
在场景之间共享信息是有意为之的。每个场景都是自己的小实验,不应受他人影响。
现在,如果您习惯于编写手动测试脚本,您可能会认为重用东西是有效的。它是。但是计算机要快得多,因此您不必非常高效。而是因为从头开始做所有事情的成本很低,所以效率低下是值得的,可以减少测试意外交互的机会。
所以宁愿考虑写三个不同的场景:
Scenario: Create
Given the things needed to make a category
When a new category is created
Then it has all the things used to make it
Scenario: Update
Given a category with some property
When the property of the category is changed
Then fetching the category again shows the updated
property
Scenario: Delete
Given a category
When the category is deleted
Then the category is not found when fetched
第二个和第三个在给定步骤中创建类别。
现在,如果这是一个在测试后未关闭的系统 运行,您可能还想使用 after hooks 来尝试删除测试完成后创建的任何类别。