Question

J'ai écrit des fournisseurs en c # qui héritent de la classe providerbase. J'ai trouvé qu'il est difficile d'écrire des tests qui utilisent les fournisseurs, car la plupart des frameworks moqueurs ne vous permettront que de vous moquer d'une interface.

Existe-t-il un moyen de simuler un appel à un fournisseur qui hérite de providerbase?

Si non, y a-t-il un modèle que je peux utiliser pour implémenter les moqueries des fournisseurs?

Était-ce utile?

La solution

Les frameworks moqueurs devraient pouvoir créer pour vous un objet fictif basé sur une classe, tant qu'il possède des membres virtuels.

Vous pouvez également consulter Typemock

.

Autres conseils

Je sais que Rhino peut aussi se moquer des classes, la plupart des autres cadres moqueurs ne devraient pas avoir de problème avec ça non plus. Les choses aussi gardez à l'esprit: la classe ne peut pas être scellée. Vous devez marquer les méthodes que vous voulez simuler virtuelles et la classe a besoin d'un constructeur sans arguments qui peuvent être protégés, mais private ne fonctionnera pas. (juste essayé ceci)

N'oubliez pas que le framework moqueur crée simplement une classe qui hérite de votre classe et crée un objet de ce type. Donc, les constructeurs seront appelés. Cela peut entraîner un comportement inattendu dans vos tests.

RhinoMocks ou Moq créera des doubles de test pour les classes ainsi que pour les interfaces. Le type doit avoir des méthodes virtuelles ou être abstrait si. L’isolateur Typemock résout ce problème.

Je suggérerais probablement que les objets que vous voulez simuler soient abstraits ( principe d'inversion de dépendance ).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top