我目前正在为一个项目构建一个自动化的功能/验收测试套件,但是我没有很多编写这些类型测试的经验,所以我想得到一些正确构建它们的输入.具体来说,我正在使用Arquillian的Graphene扩展.
例如,假设我有3个测试,A,B和C.
TestA:测试登录应用程序中的帐户.因此,如果测试成功,浏览器应该在帐户的主页/信息页面上.
TestB:测试修改帐户的密码.这将需要登录帐户,然后测试密码更改功能.
TestC:测试修改帐户的电子邮件.这将再次需要登录帐户,然后测试电子邮件更改功能.
如果TestA由于登录代码问题而失败,显然TestB和TestC也会失败,因为它们需要登录到帐户.
问题:自动功能/验收测试是否应该复制完成测试验证所必需的过程?在这种情况下,TestB和TestC需要在执行任何其他操作之前登录该帐户.每个测试应该明确地调用如下:
/* ...initial test setup code here */
LoginPage.login(username, password);
assertTrue(onCorrectAccountPage);
AccountModification.changePassword(newPassword);
Run Code Online (Sandbox Code Playgroud)
或者我应该使用某种方式将一个帐户模拟到可以由测试B和C使用的会话中,这样即使TestA(实际的登录测试)确实如此,它们也不会失败?
由于这些是用户验收测试,我的想法是他们应该完成用户会做的事情并在必要时登录,但我不确定这是否是不必要的重复,应该以不同的方式处理(即,像功能,类似于标准单元测试)我希望得到在这方面有更多经验的人的反馈.
提前致谢.希望我的问题不是太复杂.:)
selenium structure acceptance-testing functional-testing jboss-arquillian