gpt4 book ai didi

testing - cucumber 场景 - 正确场景

转载 作者:行者123 更新时间:2023-11-28 21:06:54 26 4
gpt4 key购买 nike

我正在尝试改进我的 cucumber 场景 (BDD)

假设我们有一个网站,它可以处于 3 种状态,并且基于这种状态,它在页面中具有不同的网络元素。

您将如何编写 Cucumber 场景,使其尽可能接近 BDD 方法并易于理解?

目前我有:

  Scenario Outline: View page in <PAGE STATE> state
Given I opened page in <PAGE STATE> state
Then I should see "<AVAILABLE ELEMENTS>
Examples:
| PAGE STATE | AVAILABLE ELEMENTS |
| State1 | Value input, Default slider, Active slider, |
| State2 | Value input, Default slider, Active slider, Type dropdown |
| State3 | Value input, Default slider, Active slider, Image uploader |

最佳答案

我不会推荐所有页面状态的场景大纲。您希望每个场景都紧密关注您所断言的事情。比如图片 uploader 应该是自己的场景:

Scenario: Users can upload an image when things are foobarred
# One or more `Given` steps to put the system into the correct state
Given a foo exists
And bar has happened
And a baz has been foobarred
When I am viewing the page
Then I should be able to upload an image

以及做出断言的示例步骤:

[Then(@"I (should|should not) be able to upload an image")]
public void ThenIShouldBeAbleToUploadAnImage(string assertion)
{
bool isFound = false;

try
{
var element = driver.FindElement(By.Css("input[type='file']"));

isFound = true;
}
catch (NoSuchElementException)
{
// do nothing
}
catch (WebDriverTimeoutException)
{
// do nothing
}

if (assertion == "should")
{
// Assert isFound is true
}
else
{
// Assert isFound is false
}
}

场景名称清楚地表明了一个狭窄的测试用例。页面的每个状态都在该场景的 Given 步骤中明确定义。它也只有一个断言,因此这种情况应该失败的原因只有一个(图像上传字段不存在)。

您希望您的场景专注于单一行为。您的步骤不应描述页面或屏幕的技术细节,而应描述用户正在做什么。您不应该断言上传字段是可见的。您应该断言您能够上传图像并让步骤定义负责查找图像上传字段。

参见 BDD 101: Writing Good Gherkin有关如何编写描述行为的良好步骤而不是逐步完成任务的过程的更多建议。

关于testing - cucumber 场景 - 正确场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56988515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com