2013-04-11 63 views
1

我有两个功能文件feature1.feature和feature2.feature。在feature1.feature中,我创建一个字段值并将其添加到FeatureContext.Current。是否有可能从feature2.feature访问该值?如何访问Specflow中的另一个功能的值

我知道FeatureContext类会在特定功能运行结束后被清除。是否有任何其他方法来访问两个不同的功能文件之间的值?

请提出一些建议。

在此先感谢。

回答

0

我从来没有尝试过,但也许可以使用[BeforeFeature]和[AfterFeature]属性从featurecontext获取值,并将其设置在下一个功能的上下文中。

2

我强烈建议不要这样做。造成这种情况的原因有两个:

  • 技术原因:SpecFlow不能保证它运行的顺序或者是场景的功能。你不能相信它永远都是一样的。
  • 商业原因:你写的场景首先是一个交流工具。你希望他们自己很容易理解。当您谈论某个特定场景时,您不应该通过该功能中的其他场景来了解该特殊情况。它围绕着这种情况阻塞了你的沟通。

为了便于阅读,我建议您在每种情况下都重复一些信息。如果您在每种情况下都会得到大量重复信息,那么您可以使用Background-feature of Gherkin。这些步骤在功能文件中的每个场景之前运行一次,并可用于执行重复的操作。

如果您发现自己处于需要在各种场景之间来回传递信息的情况,那么您应该退后一步并重新考虑您的场景。这两种不同的场景,真的吗?或者它可能只是一个?你怎么能把它们表达得更清楚?

我希望这是有用的。

相关问题