Ich schreibe JUnit für eine Klasse, die über Konstruktor auf eine Legacy-Klasse verweist. Die Legacy-Klasse befindet sich in einem Drittanbieter-Jar, also kann ich sie nicht umgestalten, um das Leben einfacher zu machen ....
Dies ist die getestete Klasse ...
%Vor%Das versuche ich im Mockito JUnit.
%Vor%Irgendwelche Ideen, wie ich das machen kann ?????
Erstellen Sie einen Builder für LegacyClass
:
Auf diese Weise kann Ihre Klasse getestet werden, so dass die LegacyClass
mit dem korrekten Parameter erstellt wird.
Der Test sieht ungefähr so aus:
%Vor% Wenn LegacyClass
zufälligerweise final
ist, müssen Sie einen nicht abschließenden Wrapper für LegacyClass
erstellen, den MyClass
verwenden wird.
Sie können das PowerMockito-Framework verwenden:
%Vor%Schreiben Sie dann Ihre MockedLegacyClass-Implementierung entsprechend Ihren Testanforderungen.
Ich glaube, es ist nicht möglich, Konstrukteure zu verspotten, die Mockito verwenden. Stattdessen werde ich den folgenden Ansatz vorschlagen:
%Vor%