Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 重用SpecFlow场景_.net_Bdd_Specflow - Fatal编程技术网

.net 重用SpecFlow场景

.net 重用SpecFlow场景,.net,bdd,specflow,.net,Bdd,Specflow,我已经开始使用SpecFlow了,我想知道是否可以在spec之间重用场景 基本上我的想法是(我可能根本错了:)) 我编写了一个特性来验证导航 功能:导航 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** 然后我有另一个规范来验证Bo

我已经开始使用SpecFlow了,我想知道是否可以在spec之间重用场景

基本上我的想法是(我可能根本错了:))

我编写了一个特性来验证导航

功能:导航

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屏幕。我在想是否可以重用场景:导航到导航中编写的Boo场景

I should be able to navigate to all the pages i'm authorized to
这可能吗?否则,最好的解决办法是什么


/BB

这里有两个选项:


  • 创建一个具有共享步骤的类,这些步骤对于许多场景都是通用的。在您的例子中,这个类将包含“当我导航到Boo”步骤。这样,其他功能也可以使用此功能

  • 您可以使用完全相同的名称/文本执行多个步骤,但可以使用确保为某个功能调用该步骤的正确版本。因此,您可以在多个功能文件中显示“When I navigate to Boo”,但通过使用步骤范围,您可以控制为功能文件运行的代码


  • 谢谢你,杰森。这正是我想要的!很好:)很高兴我能帮上忙。“创建一个共享步骤的类”-->这不仅是一个选项,而且是强制性的。在SpecFlow中,所有步骤都是共享的。步骤类只是步骤容器,但它们不封装它们。因此,最好按公共方面(ProductSteps、CustomerSteps、PaymentSteps等)而不是按功能(CheckoutFeatureSteps)在类中组织步骤,因为这些步骤对其他功能仍然可用。这不会改变你答案的正确性,但我发现在使用SpecFlow时,了解这个细节会有很大帮助。@Francesc-我知道你的答案来自哪里。是的,你说不管怎样,步骤都是共享的,这是正确的,我在回答中没有说清楚。我试图达到的目的是将常见的共享步骤放在单独的文件中,如您所述。