2008-11-24 6 views
15

Je suis nouveau à moquer, j'ai un nouveau projet web .net qui est dans la structure UI-> BLL-> DAL-> DB, j'utilise NUnit pour faire des tests actuellement. J'ai l'intention de l'utiliser pour tester le niveau intermédiaire, donc je n'ai pas besoin d'écrire sur DB.Se moquer des mannequins?

Maintenant, je n'ai jamais fait de moqueurs, je ne sais pas par où commencer, donc je cherche un cadre moqueur qui a des échantillons de bout en bout! Est-ce que quelqu'un pourrait m'indiquer un matériel moqueur qui commence depuis le début et avec des échantillons complets s'il vous plaît?

Merci,

Ray.

Répondre

3

Rhino Mocks est un cadre que vous pouvez utiliser que j'ai utilisé un peu.

Cheat sheet a quelques liens si vous voulez essayer d'autres si l'article est un peu daté. ?

+0

J'ai pris un deuxième rhinocéros en l'espace d'une heure. –

3

Typemock ...

bien

, le meilleur pour moi se moquant - interfaces, refactoring de votre code un peu et trouver ce que vous voulez tester afin que vous n'avez pas besoin moqueur. Ou - toute injection de dépendance pour se moquer de certaines choses (mais avant que vous ayez besoin de refactoriser un peu bien sûr)

9

Vous devriez regarder quelques vidéos sur moquer sur Dimecasts.net, c'est un moyen rapide d'avoir une idée de ce que se moquer de et commence sur votre propre code.

Introduction to Moq

Introduction to RhinoMocks

+0

Ceux qui sont vraiment très gentils, ont beaucoup appris de ces clips courts :). – Morph

4

À l'heure actuelle il y a un certain nombre de cadres moqueurs. Je vous recommande de regarder RhinoMock ou TypeMock. Les deux sont gratuits pour les projets personnels/open source. TypeMock possède également une licence d'entreprise. RhinoMock vous oblige à refactoriser votre code pour la testabilité (si nécessaire, si vous avez déjà du code testable, vous faites bien). Cela nécessite plus de travail, mais il vous laissera avec le code qui est faiblement couplé, ce qui est un avantage en soi. En raison de cela, il y a certaines constructions que vous ne pouvez pas simuler directement avec Rhino. Cependant, vous pouvez toujours introduire des couches supplémentaires d'indirection et les résoudre de cette façon. La ligne de fond est cependant la suivante: vous devez faire un peu plus de travail, mais finalement le refactoring sera bénéfique pour votre code.

TypeMock d'autre part fonctionne en modifiant le code à la volée (il utilise l'API de profileur pour injecter du code). Cela vous permet d'utiliser un code qui ne convient pas à ce type de test. TypeMock vous permettra de vous moquer de tout (sauf pour mscorlib), donc il est facile de commencer et ça marche bien avec le code existant. Cependant, parce que vous n'êtes pas obligé de refactoriser votre code, vous n'obtenez pas l'avantage supplémentaire de types faiblement couplés. De plus, TypeMock conduira parfois à des erreurs très étranges du fait que le code courant est modifié.