在编写UI测试时,如何测试长序列末尾的一个东西?

时间:2011-02-11 21:16:05

标签: automated-tests integration-testing watin

我刚开始使用WatiN对我的ASP.NET MVC应用程序运行UI测试。这是一个很棒的工具,非常直观,但我发现自己想知道个人测试中属于什么。

我发现有很多人建议将这些测试视为单元测试,因此不应对订单或副作用有任何期望。

当用户故事假定用户在完成我要测试的活动之前完成了一系列步骤时,我遇到了问题。

一些例子......

  1. 用户必须注册,注销并输入错误的密码3次,以确认系统不会让他们使用正确的密码再次登录

  2. 用户必须注册,添加一些foos,添加一些条形图,提交一个表单,允许他们在他们的foos和酒吧中进行选择,并在另一页上查看他们的提交

  3. 通过单元测试,我可以使用模拟来处理先决条件任务。

    处理这种情况的一些好方法是什么,以便我可以避免编写经过相同先决条件步骤的单独测试,但每次测试都可靠地完成?

1 个答案:

答案 0 :(得分:1)

嘿。
我会拆分集成测试和故事验收测试。

检查PageObjects pattern - 使用正确的方法创建LoginPage类,例如loginAs(String username,String password),loginAsExpectingError(String username,String password)。您可以编写其他类 - 它为您的应用程序提供了自动化框架。您可以通过以下方式使用它:

在集成级别,如果您提供了正确的凭据(loginAs),并且在提供了错误的凭据(loginAsExpectingError)时,您正在检查应用程序组件是否正常工作。

在接受程度上,使用LoginPage.loginAs()在验收测试中迈出第一步。第二个可能是MainPage.addSomeFoos()。然后是MainPage.addSomeBars()。然后是MainPage.logOut()。

如果您的单元测试通过,则运行集成测试,如果它们通过了运行验收测试。