首页 > 解决方案 > 如何在Junit中使用基类@BeforeMethod为所有测试用例执行for循环

问题描述

假设我有一Base堂课:

Class BaseClass{

  @BeforeClass
  public static void testBefore(){
     //some work done here

  }
}

Class TestClass extends BaseClass{

  @Test
  public void testmethod1(){
     for (String x: listOfX){
      // some other assertions here here
     }
  }

  @Test
  public void testmethod2(){
     for (String x: listOfX){
      // some other assertions here here
     }
  }
}

我的问题是什么是避免每个testmethod(). 有没有办法将这个 for 循环移到@BeforeMethodetc 中,以便testMethod()每个X. 非常感谢您的建议,并感谢您的宝贵时间。

标签: javatestingjava-8automationjunit4

解决方案


正如迈克尔所提到的,这不是一个好主意,您应该改用参数化测试。在测试中运行 for 循环并不可怕,但您绝对不想为每个值创建一个新测试。每次开始新测试的开销会比复制 for 循环更慢。


推荐阅读