我正在为捐款表格写一些验收测试。我正在使用Codeception。为了这个例子,让我们说捐赠表格有3个部分:
对于验收测试,我想测试整个过程 - 信用卡和直接转移。步骤1和3在两个捐赠过程之间基本相同,但是 - 显然 - 你不能自己运行第二步(捐赠表格不会在没有第1步的情况下提交。)
所以我想知道,在这种情况下,编写两个测试(例如canDonateWithCreditCard()
和canDonateWithDirectTransfer()
)是否“正常”,这两个测试都测试过程的所有三个部分?即使这两次部分测试相同的东西?
如果没有,那么首选方法是什么?
答案 0 :(得分:1)
这在我的工作中是完全可以接受的,我们有一个相当大的自动化套件,其中相同的页面被多次执行,因为类似于上面概述的情况。
我要提到的唯一警告是构建测试时(我不知道代码是如何工作的)但是看看使用页面对象模型(http://martinfowler.com/bliki/PageObject.html)的内容来构建测试这将意味着即使您有多个可能实现相同方案的测试,但每个测试都没有自己的步骤实现。
答案 1 :(得分:1)
这取决于您的方法。 1.您可以创建两个执行操作的不同测试用例。 2.您可以在测试中使用逻辑将传输模式作为参数传递给方法并相应地执行活动。 使用Page对象模型来封装每个页面类中的所有操作以及避免冗余总是理想的。 如果信用卡和直接传输操作都导航到新页面,请根据传递的参数创建页面的新对象,并调用该方法执行传输操作。 可以像这样创建一个简单的页面对象类: http://testautomationlove.blogspot.in/2016/02/page-object-design-pattern.html