2011-07-11 29 views
5

我使用SpecFlow开始,想知道沃尔德是可以重用的规格重用SpecFlow方案

基本上之间的场景我的想法是这样的(我可能是根本错误的:))

我有一个功能编写验证导航。

特点:导航

I should be able to navigate to all the pages i'm authorized to 

情形:导航至BOO

Given I enter proper values in Foo 
When I enter Go 
Then I should be taken to Boo** 

然后我有另一个规范,将验证啵

的操作侧功能:验证Boo是否正常工作

所以在这里,我基本上需要先导航到Boo屏幕。我在想,如果我可以重用场景:导航到BOO情况写在导航

这可能吗?否则,绕过它的最佳方式是什么?

/BB

回答

5

你这里有两种选择:

  1. 创建已共享步骤一类,常见的许多场景。在你的情况下,这个类将包含“当我导航到Boo”步骤。然后这将可用于其他功能。

  2. 您可以使用完全相同的名称/文本执行多个步骤,但可以使用ScopedStepBinding以确保为某个功能调用该步骤的正确版本。因此,您可以将“当我导航到Boo”出现在多个功能文件中,但通过使用步骤范围界定,您可以控制为特征文件运行哪些代码。

+0

谢谢杰森。几乎我在找什么! – Illuminati

+0

不错的一个:)很高兴我能帮忙。 –

+3

“创建一个共享步骤的类” - >这不仅是一个选项,它是强制性的。在SpecFlow中,所有步骤都是共享的。步骤类只是步骤容器,但它们不封装它们。因此,最好是通过共同方面(ProductSteps,CustomerSteps,PaymentSteps等)而不是按功能(CheckoutFeatureSteps)组织类中的步骤,因为无论如何这些步骤都可用于其他功能。这并不会改变您的答案的有效性,但我发现在使用SpecFlow时,了解这些细节会有很大帮助。 –