Ich habe Klasse
%Vor% Bitte können Sie helfen, MethodA()
vorzuspielen, ohne virtuelle,
Ich habe das Konzept der Injektion von High-Perf-Abhängigkeiten
Es bedeutet, dass Sie Ihren Produktionscode templatisieren müssen. Verwenden Sie Ihr Beispiel:
CSumWind
Klassendefinition:
Mocked CSumWnd
-Klassendefinition:
Produktionsklasse, die mit der mocked Klasse CSumWind
getestet werden muss. Jetzt wird es templated, um CSumWind
class in Produktionscode und MockCSumWnd
class in Tests bereitzustellen.
Instanziierung von TestedClass
in der Produktion:
Instanziierung von TestedClass
-Objekt in testbarer ausführbarer Datei:
Versuchen CppFreeMock und einige andere erwähnt hier .
Beispiel:
%Vor%Wenn Sie den vorhandenen Code nicht ändern möchten, finden Sie hier eine spezifische Lösung für VC ++, an der ich arbeite ( Ссылка ). Die kurzen Schritte sind:
Lassen Sie uns hier den Schlüsselcode eingeben.
Ruft Methoden und Symbole einer Klasse ab. Unten ist die Schlüsselidee der Implementierung. Der vollständige Quellcode ist unter Ссылка
verfügbar %Vor%Schritt 2 ist Trival. Es ist nur Textvergleich und Verarbeitung.
Wie man den magischen Asm injiziert, um das Methodenverhalten zu ändern: (Der vollständige Quellcode ist verfügbar unter Ссылка )
%Vor%