J'ai besoin de tester une classe SportCar, qui étend Car. Le problème est que lorsque je crée mon objet de test
SportCar car = new SportCar();
cela appellera également le constructeur des classes parentes, par exemple, Car(). Ces constructeurs font beaucoup de choses, ont beaucoup de dépendances de l'environnement et nécessitent beaucoup de fichiers de configuration que je n'ai pas, donc je voudrais créer une instance de SportCar sans appeler les constructeurs hérités.
La seule solution que je connaisse pour cela est de créer un Mockup pour Car dans lequel je surcharge le constructeur ($init) et le bloc statique ($clinit). Mais maintenant mon problème est, que se passe-t-il s'il y a de nombreuses classes dans ma hiérarchie (SportCar étend Car qui étend A qui étend B qui étend C...) et que je veux éviter tous les constructeurs ? Dois-je créer des Mocks pour TOUTES les classes précédentes ?
class A extends B {
public A() {
// Beaucoup de choses à éviter pendant les tests
}
}
class Car extends A {
public Car() {
// Beaucoup de choses à éviter pendant les tests
}
}
class SportCar extends Car() {
}