代码之家  ›  专栏  ›  技术社区  ›  serhii

重复使用不同设置运行JUnit测试

  •  1
  • serhii  · 技术社区  · 6 年前

    例如,我有一些基于 Set<Integer> 。我想和他们一起跑 TreeSet 然后用 HashSet 。我可以在测试方法体中不进行手动初始化就完成它吗?

    类似这样:

    public class SomeTest {
        Set<Integer> set;
    
        @Before 
        public void init() {
            set = new HashSet<>();
        }
    
    //    @Before
    //    public void init2() {
    //        set = new TreeSet<>();
    //    }
    
        //test...
    }
    

    我想用运行所有测试 init() 先是,然后是 init2() 。我该怎么做?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Antot    6 年前

    更清洁的方法是:

    public abstract class SomeTestsForSets {
      Set<Integer> set;
    
      @Before 
      public abstract void init();
    
      //test cases...
    }
    
    public class HashSetTests extends SomeTestsForSets {
    
      @Override
      public void init() {
        this.set = new HashSet<>();
      }
    }
    
    public class TreeSetTests extends SomeTestsForSets {
    
      @Override
      public void init() {
        this.set = new TreeSet<>();
      }
    }