JUnit类别-如何避免代码重复

时间:2019-04-24 13:38:44

标签: java junit junit4

假设我有两个带有适当类别的测试类:

@Category({CategoryA.class})
public class A {
   ...
}

@Category({CategoryB.class})
public class B {
   ...
}
共享公共代码库的

,仅1行测试方法有所不同。 使该代码更好的最佳方法是什么? 例如,如果我只使用一个类:

@Category({CategoryA.class, CategoryB.class})
public class AB {
   ...
}

是否可以在运行时确定类别并添加简单的 if 语句?

1 个答案:

答案 0 :(得分:0)

您为什么没有一个抽象类来完成大部分工作,然后又有两个扩展类并具有不同的@Category注释?像这样:

public abstract class ABParent {
    protected abstract void thingThatsDifferent();
}

@Category(CategoryA.class)
public class A extends ABParent {
    @Override
    protected void thingThatsDifferent() {
        System.out.println("Woof");
    }
}

@Category(CategoryB.class)
public class B extends ABParent {
    @Override
    protected void thingThatsDifferent() {
        System.out.println("Meow");
    }
}