Мне нужно протестировать класс SportCar, который расширяет Car.Проблема в том, что когда я создаю тестируемый объект
SportCar car = new SportCar();
, он также вызывает конструктор из родительских классов, например, Car ().Эти конструкторы делают много вещей, имеют много зависимостей от окружения и нуждаются в большом количестве конфигурационных файлов, которых у меня нет, поэтому я хотел бы создать экземпляр SportCar без вызова унаследованных конструкторов.Решение, которое я знаю для этого, заключается в создании Mockup for Car, в котором я перезаписываю конструктор ($ init) и статический блок ($ clinit).Но теперь моя проблема в том, что произойдет, если в моей иерархии будет много классов (SportCar расширяет Car, расширяющий A, расширяющий B, расширяющий C ...), и я хочу избежать всех конструкторов?Должен ли я создавать Mocks для ВСЕХ предыдущих классов?
class A extends B{
public A(){
// Plenty of things to avoid during tests
}
}
class Car extends A{
public Car(){
// Plenty of things to avoid during tests
}
}
class SportCar extends Car(){
}