2011-09-30 215 views
1

在我的web应用程序中,有多个具有常见webElements的屏幕。我想断言所有这些常见元素都存在于每个页面上。但是我不想把所有的断言放到一个单一的效用函数中,如果一个断言失败,它会在一半的时间中止。我希望为每个断言提供单独的测试用例,并在多个测试类(每个页面一个测试类)中运行该测试集。如何在多个测试类中运行一组junit测试?

我读到继承是一个坏主意,因为那么你必须深入到比即时测试类更深的位置去查看所有正在运行的测试。但同时,我不想维护多个页面上通用的测试副本。

+0

你应该做什么适合你和你的团队。 –

回答

1

相同的规则适用于适用于其余开发的测试开发,您可以执行您和您的团队发现的最容易理解的内容。您有以下选择:

  1. 继承:在父类中定义测试。我使用了JUnit测试的继承,包括父类中的测试。这工作和运作良好,主要优点是它保存了重复的代码。缺点:你必须在多个地方看你的测试。当您在Eclipse中的Junit视图中双击测试名称时,它会将您带到父类,这有时令人困惑。

  2. 有一个专门用于测试页面常用功能的类,可以称之为PageTest。 PageTest会使用@Parameterized来测试所有的页面。优点:所有常见测试都是集中的。缺点是,如果添加页面,则需要将页面添加到列表中。如果可能的话,你可以避免使用反射来将东西添加到列表中。我们有一组测试,它在类路径中搜索从某个类继承的任何类(本例中为struts Action),并在该类上运行一些测试。

在这两个选项中,我会选择前者,因为它的工作量较少;单个页面的所有内容都集中在一个地方,而且您从不“忘记”测试常见元素。但这是你的项目,做你的工作。

相关问题