首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相当于在场景之后运行的背景

相当于在场景之后运行的背景
EN

Stack Overflow用户
提问于 2012-06-11 11:05:55
回答 1查看 5.6K关注 0票数 9

我是SpecFlow新手,我正在为不同角色类型的经过身份验证的用户设置许多测试特性/场景。我是通过使用Coypu的浏览器自动化来实现的。

因此,我在特性中有一个后台步骤来设置该角色类型的用户的登录。

代码语言:javascript
复制
Background:
    Given I am logged in as a ...some role I'm interested in...

在特性中的每个场景之后,我想再次登录用户(否则,在后台的日志步骤将不能用于下一个场景--我将在测试之间保持相同的Coypu浏览器实例打开)。

我找到了我可以使用的[AfterScenario]注释,但由于这是在所有特性中的所有场景的范围(据我理解.)它将影响场景,比如未经身份验证的用户。

我可以用我相信的[AfterScenario][Scope(Feature="Some Feature")]进行定位,但我预计在测试大量特性之前和之后都需要登录/退出,而且我并不热衷于用一串神奇的字符串来指定所有这些特性。

因此,我想知道我是否可以在特性文件中放一些东西,类似于背景,但要在该特性中的每个场景之后运行。(或者,也许我登录/退出每一种场景的方式并不是最好的方式?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-11 11:28:47

在specflow中没有"Postground“功能,但是您可以使用标签过滤实现类似的功能。

在我们的大多数项目中,我们使用标记来标记具有特定设置/拆卸逻辑的场景。然后,我们使用BeforeScenario/AfterScenario挂钩来执行逻辑:

代码语言:javascript
复制
[BeforeScenario("authentication")]
public void BeforeAuthenticationScenario()
{
    //...
}    

[AfterScenario("authentication")]
public void AfterAuthenticationScenario()
{
    //...
}

您可以标记单个场景或整个功能:

代码语言:javascript
复制
@authentication
Feature: Some feature requires authentication

@authentication
Scenario: Some scenario requires authentication

因此,在您的代码中,您将只有一条神奇的字符串“身份验证”,在您的特性中,您可以使用标记声明地应用自定义逻辑。

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

https://stackoverflow.com/questions/10978903

复制
相关文章

相似问题

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