gpt4 book ai didi

bdd - 对我的小 cucumber 感到困惑 - 在网页之间导航

转载 作者:行者123 更新时间:2023-12-04 06:36:49 24 4
gpt4 key购买 nike

我刚开始在 Web 项目上使用 BDD,使用 SpecFlow 和 WatiN 通过浏览器自动执行操作,我不太确定如何编写我的步骤。

我试图从测试中驱动一切,并以 TDD 方式,除非需要通过测试,否则不要写任何东西。 (我也在做单元测试来驱动细节,但这个问题不是关于那个)。我感到困惑的一件事是页面之间的导航,以及是否/如何在规范中定义它。

第一个测试涉及输入一些详细信息并确保它们显示在列表中。我的第一次尝试是这样的:

Scenario: Add Details Option 1

Given I am on the "Home" page
When I click "Add Details"
And I enter "John Smith" in the Name field
And I click "Save"
Then "John Smith" appears in the list



但是,这涉及在几个页面之间导航,所以我不知道这是否需要明确 - 否则,我只需要假设我在正确的页面上,或者与我的哪个页面明显无关的步骤m on(例如,“当我单击添加详细信息时”)有断言来检查我在哪个页面上。

我们是否在场景中使用明确的步骤检查页面?

Scenario: Add Details Option 2

Given I am on the "Home" page
When I click "Add Details"
And I am on the "Add Details" page
And I enter "John Smith" in the Name field
And I click "Save"
And I am on the "Home" page
Then "John Smith" appears in the list



或者我们是否按照选项 1 的步骤进行操作,只是没有明确提及?

例如,是否应该点击“添加详细信息”来检查我们是否最终出现在正确的页面上?
public void WhenIClickAddDetils{
// syntax probably wrong, not important
Assert.That(IE.Button("AddDetails").exists);
IE.Button("AddDetails").click();

Assert.That(IE.PageTitle = "Add Details")); // do we check this here?
}

或者我们应该在输入详细信息之前检查我们是否在正确的页面上?
public void WhenIEnterDetils{
Assert.That(IE.PageTitle = "Add Details")); // do we check this here?

IE.TextField("Name").value = "John Smith";
// etc
}

或者,我们可以从

Given I am on the "Add Details" page



只需使该步骤包括从主页开始并单击“添加详细信息按钮”即可进入该页面。尽管在我们单击“保存”后导航回主页仍然存在同样的问题。

有什么想法吗?

最佳答案

我会说你不必在这种情况下检查它。基本上,测试是Given-When-Then (安排行为断言)和 And I am on the "Add Details" page实际上是 Then (断言)内部 When (行为),这在我看来并不合适。

我的直觉是它应该看起来像这样:

Scenario: Add Details directs to "Add Details" page

Given I am on the "Home" page
When I click "Add Details"
Then I am on "Add Details" page


Scenario: "Add Details" adds person to the list

Given I am on the "Add Details" page
And I enter "John Smith" in the Name field
And I click "Save"
Then I am on the "Home" page
And "John Smith" appears in the list

关于bdd - 对我的小 cucumber 感到困惑 - 在网页之间导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4780589/

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