unit-testing - 如何在多个测试类中运行一组 junit 测试?

标签 unit-testing testing junit

在我的 webapp 中,有多个屏幕具有共同的 webElements。我想断言每个页面上都存在所有这些公共(public)元素。但我不想将我所有的断言放入一个实用函数中,如果一个断言失败,它将中途中止。我想为每个断言创建单独的测试用例,并在多个测试类(每个页面一个)中运行该组测试。

我读到继承是一个坏主意,因为你必须比直接测试类更深入地挖掘才能看到所有正在运行的测试。但与此同时,我不想维护跨页面常见的多个测试副本。

最佳答案

适用于测试开发的规则与适用于其余开发的规则相同,您可以按照您和您的团队认为最容易理解的方式进行操作。您有以下选择:

  1. 继承:在父类中定义测试。我在 JUnit 测试中使用了继承,包括父类中的测试。这很有效,而且效果很好,主要优点是它节省了重复代码。缺点:你必须在多个地方寻找你的测试。当您在 Eclipse 的 Junit View 中双击测试名称时,它会将您带到父类,这有时会让人感到困惑。

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

在这两个选项中,我会选择前者,因为它的工作量较少;单个页面的所有内容都在一个地方,您永远不会“忘记”测试公共(public)元素。但这是您的项目,做对您有用的事情。

关于unit-testing - 如何在多个测试类中运行一组 junit 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7605875/

相关文章:

node.js - 在 Jest 中创建 IncomingMessage 测试虚拟机

android - 使用 Samsuns Galaxy S3 单击全屏 View 时 Espresso 抛出错误

ios - 如何在 Storyboard管理的 UIViewControllers 中依赖注入(inject)?

testing - 如何使用 Jenkins 生成 mocha 测试用例报告并展示?

java - Mockito - 使用参数模拟方法

java - 运行带有太多测试用例的套件时内存不足(java 堆)

java - 测试类之间通用夹具的正确术语和最佳实践是什么?

java - assertEquals,什么是实际的,什么是预期的?

c# - 如何对客户端网络代码进行单元测试?

java - Kotlin 类文件无法在 IntelliJ for JUnit 中运行