【问题标题】:SpecFlow Dependent FeaturesSpecFlow 相关功能
【发布时间】:2018-04-09 23:12:45
【问题描述】:

我有 2 个功能 1. 用户创建 2. 用户注册 两者都是独立的并且有多个场景。第二个功能依赖于第一个,所以当我直接运行第二个功能时,这个功能如何检查第一个功能已经运行并且用户创建。我正在使用数据库,其中创建状态列(True/False)告诉用户是否已创建。所以,我想如果我在运行第一个功能之前运行第二个功能来创建用户。

【问题讨论】:

  • 虽然不是直接回答你的问题——我认为它是高度相关的;功能只是场景的一个“级别”,同样(我相信)应该能够完全独立于其他功能运行。在这里阅读更多:link

标签: bdd specflow


【解决方案1】:

一般来说,在测试和特殊功能之间存在依赖关系被认为是一种非常糟糕的做法。每个测试/场景都应该有自己独立的设置。

如果您的第二个功能取决于用户创建,您可以在场景中添加另一个步骤,例如“何时创建某某用户。”

如果一个功能下的所有场景共享共同的内容,您可以将其移到背景标签下。例如:

功能:用户注册

背景 给定这样那样的用户

场景 什么时候 ... 和 ... 那么……

场景 什么时候 ... 和 ... 那么……

【讨论】:

  • +1 将“给定某某用户”放在“背景”部分似乎是我的正确方法。
【解决方案2】:

我使用了反射

  1. Find all Types with a DescriptionAttribute(又名功能)
  2. 使用 TestAttribute 和 DescriptionAttribute(又名场景)查找他们的 MethodInfos
  3. 将它们存储到字典中
  4. 使用 Activator.CreateInstance 和 Invoke 通过“功能标题/场景标题”调用它们

当然,您必须根据需要设置(私有)字段“testRunner”。

【讨论】:

    猜你喜欢
    • 2014-05-03
    • 1970-01-01
    • 2011-06-17
    • 2013-08-01
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    相关资源
    最近更新 更多