假设我有两个带有适当类别的测试类:
@Category({CategoryA.class})
public class A {
...
}
和
@Category({CategoryB.class})
public class B {
...
}
共享公共代码库的,仅1行测试方法有所不同。 使该代码更好的最佳方法是什么? 例如,如果我只使用一个类:
@Category({CategoryA.class, CategoryB.class})
public class AB {
...
}
是否可以在运行时确定类别并添加简单的 if 语句?
答案 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");
}
}