当验收测试有不同的用户选择并且您想测试每个选择时该怎么办

What to do when an acceptance test has varying user choices and you want to test each of them

我正在为捐赠表格编写一些验收测试。我正在使用 Codeception。为了这个例子,假设捐赠表格有 3 个部分:

  1. 输入您的个人信息
  2. 输入信用卡和直接转账
  3. 提交并接收电子邮件确认

对于验收测试,我想测试整个过程——包括信用卡和直接转账。两个捐赠流程的第 1 步和第 3 步本质上是相同的,但是 - 显然 - 你不能 运行 单独执行第二步(如果没有第 1 步,捐赠表格将不会提交)。

所以我想知道,在这种情况下是否会 "normal" 编写两个测试(例如 canDonateWithCreditCard()canDonateWithDirectTransfer())来测试流程的所有三个部分?即使那是对同一件事进行两次部分测试?

如果不是,首选的方法是什么?

这在我的工作中是完全可以接受的,我们有一个相当大的自动化套件,其中相同的页面被执行多次,因为场景与您上面概述的类似。

我要提到的唯一警告是在构建测试时(我不知道代码接收是如何工作的)但是希望使用与页面对象模型 (http://martinfowler.com/bliki/PageObject.html) 类似的东西来构建测试这意味着即使您有多个可能实现相同场景的测试,每个测试也没有自己的这些步骤的实现。

这取决于您的方法。 1. 您可以创建两个不同的测试用例来执行该操作。 2. 您可以在测试中使用逻辑将传输模式作为参数传递给方法并相应地执行活动。 使用页面对象模型来封装每个页面中的所有操作 class 并避免冗余始终是理想的选择。 如果 Credit card 和 Direct transfer 操作都导航到新页面,则根据传递的参数创建一个新的页面对象,并调用方法来执行 transfer 操作。 一个简单的页面对象 class 可以这样创建: http://testautomationlove.blogspot.in/2016/02/page-object-design-pattern.html