当验收测试有不同的用户选择并且您想要测试每个选择时该怎么办
Posted
技术标签:
【中文标题】当验收测试有不同的用户选择并且您想要测试每个选择时该怎么办【英文标题】:What to do when an acceptance test has varying user choices and you want to test each of them 【发布时间】:2016-10-03 22:24:06 【问题描述】:我正在为捐赠表格编写一些验收测试。我正在使用Codeception。为了这个例子,假设捐赠表格有 3 个部分:
-
输入您的个人信息
输入信用卡和直接转账
提交并接收电子邮件确认
对于验收测试,我想测试整个过程——信用卡和直接转账。第 1 步和第 3 步在两个捐赠流程之间基本相同,但是 - 显然 - 您不能单独运行第二步(如果没有第 1 步,捐赠表格将无法提交)。
所以我想知道,在这种情况下,编写两个测试(例如canDonateWithCreditCard()
和canDonateWithDirectTransfer()
)来测试流程的所有三个部分是否“正常”?即使这部分测试了同一件事两次?
如果不是,最好的方法是什么?
【问题讨论】:
【参考方案1】:这在我的工作中是完全可以接受的,我们有一个相当大的自动化套件,相同的页面会被多次执行,因为场景类似于您上面概述的情况。
我要提到的唯一警告是在构建您的测试时(我不知道代码接收是如何工作的),但希望使用页面对象模型 (http://martinfowler.com/bliki/PageObject.html) 的方式来构建您的测试,这意味着即使您有多个测试可能实现相同的场景,每个测试都没有自己的这些步骤实现。
【讨论】:
【参考方案2】:这取决于您的方法。 1. 您可以创建两个不同的测试用例来执行该操作。 2. 你可以在你的测试中有一个逻辑,将传输模式作为参数传递给方法并相应地执行活动。 使用 Page 对象模型来封装每个页面类中的所有操作并避免冗余始终是理想的。 如果信用卡和直接转账操作都导航到新页面,则根据传递的参数创建页面的新对象,并调用该方法执行转账操作。 可以像这样创建一个简单的页面对象类: http://testautomationlove.blogspot.in/2016/02/page-object-design-pattern.html
【讨论】:
以上是关于当验收测试有不同的用户选择并且您想要测试每个选择时该怎么办的主要内容,如果未能解决你的问题,请参考以下文章