Ich möchte Mockito zu Unit-Test eine abstrakte Klasse verwenden, wie in diesemVerspottung einer abstrakten Klasse mit einem gespotteten Konstruktorargument?
Der Trick ist great answer. detailliert, hat die abstrakte Klasse eine Abhängigkeit von einer Strategie, die in seinem Konstruktor injiziert wird. Ich habe ein Mock der Strategie erstellt und möchte, dass meine verspottete Instanz von BaseClass die verspottete Strategie für meinen Komponententest verwendet.
Irgendwelche Vorschläge, wie ich dies verdrahten kann? Ich verwende derzeit kein IoC-Framework, denke aber über Spring nach. Vielleicht würde es den Trick tun?
// abstract class to be tested w/ mock instance
abstract BaseClass
{
// Strategy gets mocked too
protected BaseClass(Strategy strategy)
{
...
}
}
aktualisieren:
Nach der Mockito Mailing-Liste gibt es zur Zeit keine Möglichkeit, Argumente an den Konstruktor eines Mock zu übergeben.
Danke, Jordanien! Unglücklicherweise glaube ich nicht, dass es für meinen Fall funktionieren wird, da ich ein spezifisches Spottverhalten in der Strategieklasse benötige, die in die Basis injiziert wird. Wenn ein Standard-Mock der Strategie verwendet wurde (der nur Null, 0 usw. zurückgibt), würde die Logik der gemeldeten Basisklasse brechen. Trotzdem danke! – HolySamosa
Dies beantwortet die Frage nicht. –