首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设计可重用步骤Specflow-这种方法正确吗

设计可重用步骤Specflow-这种方法正确吗
EN

Stack Overflow用户
提问于 2015-08-13 04:53:12
回答 1查看 370关注 0票数 2

我们是Specflow的新手&我们试图在我们的公司中实现它,我们开发了很少的特性作为烟雾/回归测试的一部分&目前,executing.We正在遵循所描述的方法--我们观察到的是用于重新描述步骤--这些步骤必须分解为其最重要的组件/单元特性,如下所示-

代码语言:javascript
运行
复制
Scenario: Search Cash book by Id
    Given Site browser launched
    Given Login is successful with "******" and "********"
    Given Set the service to "*******"
    Given Search a specific account "ABCDEFG" to match "Account"
    When A specific account is selected "ABCDEFG"
    When I search cash book with these data "CSX"
    Then the result should display records with transaction Amount "$1234"

我们观察到的是,如果您的步骤不像上面所描述的那样,它们的可重用性在其他特性中是非常有限的。这种方法是正确的,还是需要与特性相关的步骤,而不是可重用性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-17 14:33:55

示例的规范与关键字驱动的测试与您试图实现的不一样。真正的BDD方法应该是这样的:

代码语言:javascript
运行
复制
Feature: Viewing transaction amounts in certain cashbooks
As a customer
In order to know if I am paid
I want to see the amount next to a transaction

Background:
Given the following transaction:
    | Name      | Account   | CashBook | Transaction | Amount |
    | CustomerA | ABCDEFG   | CSX      | GlipGlob    | 1234   |

Scenario: A Cash book can be searched by ID
    Given I am logged in as CustomerA
    And I have selected the account "ABCDEFG"
    And I have selected the cash book "CSX"
    Then there should be a transaction with amount "1234"

背景检查是否存在和/或设置数据。如何做到这一点对特性(实现细节)并不重要。这可以通过直接DB查询、the服务或通过GUI (不推荐)来完成。

这个场景也是在没有实现上下文的情况下运行的:您是作为一个you服务器、通过浏览器还是作为Windows应用程序运行它并不重要。因此,“复选框”或“填充编辑框”和“单击链接”等信息不应出现在功能中。如果您正在测试特定的页面布局,则例外。

在您的测试设计开始时,这使得您的步骤在较低的级别上不太可重用,因此您必须在您的胶水代码中创建可重用的步骤。对于Selenium en use测试,您可以使用页面对象模式来实现这一点。

最后,您将有一个更灵活的框架。当复选框更改为一个无线电按钮或对象上的一个链接时,您只需要更改页面对象中的一个方法,而不需要更改100个功能文件。

如果管理层决定他们想要一个iPhone应用程序,你可以重复使用你所有的测试,只需为你的胶水代码做一个不同的界面。

当开发人员将REST交给应用程序,因为它需要与其他源互连时,您只需更改胶水代码就可以重用相同的特性文件。

因此,是的,在低级别上,如果步骤中没有定义对象,那么步骤并不是非常可重用的,但从长远来看,它将给您带来巨大的优势。当您想在可实现的步骤定义中使用低级别的步骤时,也许SpecFlow是错误的框架。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31979749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档