abstract class BaseClass{
private final Dependency dep;
BaseClass(final Dependency dep){
this.dep = dep;
}
abstract void toBeImplementedBySubclasses();
public int concreteMethod(){
//Do some processing
return any_integer;
}
}
class DerivedOne{
@Inject
DerivedOne(final Dependency dep){
super(dep);
}
public void toBeImplementedBySubclasses(){
//DO SOMETHING RELEVANT TO DERIVED ONE IMPLEMENTATION
}
}
class DerivedTwo{
@Inject
DerivedOne(final Dependency dep){
super(dep);
}
public void toBeImplementedBySubclasses(){
//DO SOMETHING RELEVANT TO DERIVED TWO IMPLEMENTATION
}
}
Я хочу проверить конкретные методы в абстрактном классе. Это нормально, если я тестирую конкретные методы в базовом классе в модульном тесте для любого из двух производных классов, или есть какой-либо другой способ?
Итак, если написать тест для класса DerivedOne, он будет включать тест для всех методов И конкретного метода базового класса. Я знаю, что есть вещь "Mockito.CALLS_REAL_METHODS", с помощью которой мы можем тестировать абстрактные классы, но в моем случае у моего базового класса есть некоторые зависимости, которые я инициализирую / внедряю, используя конструктор инсайдеров super () моих производных классов, поэтому я не могу делать это с помощью CALLS_REALS_METHODS