我是SpecFlow的新手,我正在为不同角色类型的经过身份验证的用户设置一些测试功能/方案.我是通过Coypu的浏览器自动化做到这一点的.
所以我在该功能中有一个后台步骤来设置该角色类型的用户的登录.
Background:
Given I am logged in as a ...some role I'm interested in...
Run Code Online (Sandbox Code Playgroud)
在功能中的每个场景之后,我想再次将用户注销(否则后台中的登录步骤将不适用于下一个场景 - 我在测试之间保持相同的Coypu浏览器实例打开).
我发现了[AfterScenario]我可以使用的注释,但是因为它涵盖了所有功能的所有场景(据我所知......),这会影响未经身份验证的用户的场景.
我可以[AfterScenario]使用[Scope(Feature="Some Feature")]我相信的范围,但我预计必须在我正在测试的许多功能之前和之后登录/注销,而且我并不热衷于使用一堆魔术字符串来指定所有这些功能.
所以我想知道我是否可以在Feature文件中添加一些东西,相当于Background,但是在该功能的每个场景之后运行.(或者,也许我为每个场景登录/退出的方式不是最好的方法吗?)
nem*_*esv 12
specflow中没有"Postground"功能,但您可以通过标签过滤实现类似的功能.
在我们的大多数项目中,我们使用标签来标记具有特定设置/拆卸逻辑的场景.然后我们使用BeforeScenario/AfterScenario挂钩来执行逻辑:
[BeforeScenario("authentication")]
public void BeforeAuthenticationScenario()
{
//...
}
[AfterScenario("authentication")]
public void AfterAuthenticationScenario()
{
//...
}
Run Code Online (Sandbox Code Playgroud)
您可以标记单个方案或整个功能:
@authentication
Feature: Some feature requires authentication
@authentication
Scenario: Some scenario requires authentication
Run Code Online (Sandbox Code Playgroud)
因此,在您的代码中,您将只有一个魔术字符串"身份验证",并且在您的功能中,您可以使用标记以声明方式应用自定义逻辑.
| 归档时间: |
|
| 查看次数: |
4487 次 |
| 最近记录: |