你应该用BDD方式或Gui Test进行测试吗?

时间:2012-08-22 15:43:03

标签: cucumber bdd specflow gui-testing

我试图了解您应该何时通过 BDD 进行测试,例如cucumber / specflow,以及何时应该直接测试 gui

例如,测试“ AdminHelp 按钮只能由管理员查看”。

此管理员按钮位于特定页面上。我应该以BDD方式测试它(即场景:

  1. 当管理员登录时
  2. 然后他看到了AdminHelp按钮
  3. 编写一个单元测试,将current_user设置为管理员用户,并测试模板呈现的html是否包含AdminHelp按钮。

    感谢。

2 个答案:

答案 0 :(得分:3)

Specflow是一种自动化工具,但它的工作级别高于Selenium或Microsoft UI Automation。您通常会使用它来描述用户使用该应用程序的场景。例如:

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的核心,我建议从那里开始,然后再担心如何进行自动化部分。

答案 1 :(得分:0)

您应该这样做,因为这是UI / UX接受标准的一部分。您可以以BDD方式进行操作。您可以在不同的抽象级别使用黄瓜/ specflow。