我试图了解您何时应该通过BDD(例如 cucumber/specflow)进行测试,以及何时应该直接测试您的gui。
例如,测试“ AdminHelp按钮只能由管理员看到”。
此管理按钮位于特定页面上。我是否应该以 BDD 方式对其进行测试(即:
- 当管理员登录时
- 然后他看到 AdminHelp 按钮
或者
编写一个单元测试,将 current_user 设置为管理员用户,并测试模板呈现的 html 是否包含 AdminHelp 按钮。
谢谢。
我试图了解您何时应该通过BDD(例如 cucumber/specflow)进行测试,以及何时应该直接测试您的gui。
例如,测试“ AdminHelp按钮只能由管理员看到”。
此管理按钮位于特定页面上。我是否应该以 BDD 方式对其进行测试(即:
或者
编写一个单元测试,将 current_user 设置为管理员用户,并测试模板呈现的 html 是否包含 AdminHelp 按钮。
谢谢。
Specflow 是一种自动化工具,但它的工作级别比 Selenium 或 Microsoft UI 自动化更高。您通常会使用它来描述用户使用应用程序的场景。例如:
Given Andy Admin is an administrator
When he logs in
Then he should be taken to the admin home page.
Given Andy Admin is on the admin home page
When he wants help
Then he should be directed to the admin manual.
请注意,我没有在其中任何地方提到管理员帮助按钮。安迪可以很容易地向秘书寻求帮助!我们根据系统提供的功能以声明方式描述这些步骤。这就是 BDD 的风格。
然后,Specflow 将 Given、When 和 Then 短语映射到代码步骤。在代码中,您可以使用自动化工具来实际单击按钮。但是,使用业务用来描述系统功能的相同语言更易于维护;因为那样的话,如果 UI 发生变化,您只需要更改 1 个步骤而不是 15 多个场景。
此外,在场景中使用高级语言往往会保持业务兴趣,这意味着与他们就这些场景进行对话要容易得多。对话是 BDD 的核心,我建议从那里开始,然后再担心如何进行自动化部分。
您应该这样做,因为这是 UI/UX 验收标准的一部分。你可以用 BDD 的方式来做。您可以在不同的抽象级别使用 cucumber/specflow。