Frage

Ich habe einige Anbieter in c # geschrieben, die von der Provider Klasse erben. Ich habe festgestellt, dass es schwer ist, Tests zu schreiben, die die Anbieter verwenden, da die meisten spöttischen Frameworks nur ermöglicht es Ihnen, eine Schnittstelle zu verspotten.

Gibt es eine Möglichkeit, einen Anruf zu einem Anbieter zu verspotten, die von Provider erbt?

Wenn nicht, gibt es ein Muster, das ich benutzen kann spöttisch von Anbietern zu implementieren?

War es hilfreich?

Lösung

Rahmenbedingungen Mocking sollte für Sie ein Mock-Objekt basiert auf einer Klasse erstellen können, solange es virtuelle Mitglieder bekam ist.

Sie können auch einen Blick nehmen unter Typemock

Andere Tipps

ich weiß Rhino Mocks zu Klassen spotten kann, die meisten anderen spöttischen Frameworks keine Probleme mit diesem entweder haben sollte.
Die Dinge zu beachten: Die Klasse nicht abgedichtet werden kann. Sie müssen Methoden markieren Sie diese virtuelle und die Klasse muss einen Konstruktor ohne Argumente verspotten wollen geschützt werden kann, wird der private nicht. (Nur diese ausprobiert)

Beachten Sie, dass die Mockframework wird nur eine Klasse erstellen, die von Ihrer Klasse erbt und erstellt ein Objekt dieses Typs. So erhalten Konstrukteure genannt. Dies kann ein unerwartetes Verhalten in Ihren Tests führen.

RhinoMocks oder wird Moq Test sowie für Schnittstellen für Klassen verdoppelt erstellen. Der Typ hat zu virtuellen Methoden hat oder wenn abstrakt sein. Der Typemock Isolator wird, um dieses.

Ich würde vorschlagen, dass die Objekte, die Sie wahrscheinlich abstrakt sollten verspotten wollen sein ( Abhängigkeit Inversion Prinzip ).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top