Gibt es eine Alternative zur Shim-Funktion in Microsoft Fake Framework?

8

Ich frage mich, gibt es eine alternative lib zu der Shim-Funktion in Microsoft Fake Framework zur Verfügung gestellt, da es nur in der ultimativen Version unterstützt wird?

    
sunqiang.leo 26.09.2013, 15:10
quelle

4 Antworten

3

Nach meinem Kenntnisstand gibt es drei Frameworks, die es Ihnen erlauben, nicht-virtuelle Methoden und versiegelte Klassen wie Fakes Shims nachzuahmen. Es gibt

Sie sind alle kommerziell, weil sie die Profiling-API verwenden, die sehr haarig und schlecht dokumentiert ist, so dass die Codierung ein echter Schmerz ist.

Und für den Rekord bin ich alles für Fälschungen. Der meiste Code, an dem Leute arbeiten, ist Legacy-Code. Eine der Regeln für das Refactoring des Pragmatischen Programmierers besteht darin, sicherzustellen, dass Sie vor jedem Refactoring eine Einheitentestabdeckung haben, um eine Regression zu vermeiden. Dies macht Fakes und ähnliche Frameworks sehr nützlich, besonders wenn der Legacy-Code nicht für die Testfähigkeit geschrieben wurde.

    
JamesF 10.02.2015 17:41
quelle
0

Ja und für einen detaillierten Vergleich schaue hier:

Mock Framework vs MS Fakes Frameworks

Wie Sie aus Jim Coopers Antwort erfahren werden, sind die Fake-Assemblies eigentlich eine schlechte Sache und es gibt viel bessere Alternativen, z. welche Refactoring unterstützen und weniger Code benötigen (Generics verwenden).

    
Tony Wall 01.05.2014 12:09
quelle
0

Eine Open-Source-Alternative ist Prig . MIT lizensiert und immer noch aktiv - aber etwas hinterher mit VS IDE

    
Tjad Clark 06.02.2018 10:36
quelle
0

Prig wurde nicht für die Arbeit mit VS 2017 aktualisiert, aber Pose funktioniert wirklich gut für das, was ich brauchte für (grundlegende Shimming von Environment.UserName und DateTime.Now und ähnlich), und hat eine wirklich schöne Schnittstelle:

%Vor%

BEARBEITEN

Ich sollte beachten, dass ich viele Fehler bekomme, wenn ich ziemlich grundlegende Tests mache - rely gruselige Fehler wie "Common Language Runtime hat ein ungültiges Programm entdeckt", und "JIT Compiler hat eine interne Beschränkung gefunden". Also schütze Emptor.

    
RB. 25.03.2018 22:12
quelle

Tags und Links