
Ψάχνω να προσθέσετε μια σουίτα δοκιμών για την αίτησή μου, όμως δεν μπορώ να κινηθεί προς τα νεότερα πλαίσια ελέγχου για .NET 3.5. 


Υπάρχει κάποιος που έχει κάποια πρόταση για το καλό πλαίσια δοκιμών για να χρησιμοποιήσω;

 
Ποιος είναι ο καλύτερος τρόπος για να εφαρμόσει BDD / TDD στο .NET 2.0;
=======================================================================



Χρησιμοποιούμε [MbUnit](http://www.mbunit.com/) και [Rihno χλευάζει](http://www.ayende.com/Blog/archive/2007/03/28/Rhino-Mocks-3.0-Released.aspx) και να αποδειχθεί ότι λειτουργεί πολύ καλά μαζί. Όταν κάνετε TDD θα πρέπει σχεδόν σίγουρα να κάνετε κάποια μορφή ένεσης εξάρτησης, ενώ αυτό μπορεί να γίνει με το χέρι, την αξία του κοιτάζοντας ένα δοχείο ΔΟΕ, όπως [το Κάστρο του Windsor](http://www.castleproject.org/projects/windsor/) .


Είναι καλά αξίζει κοιτάζοντας την οθόνη του Ιωάννη Παύλου Bodhood του ρίχνει για να ξεκινήσετε. [Blog JPB του](http://www.jpboodhoo.com/)

 

NUnit και Rhino κοστούμι καλά και το [δοχείο auto-σκωπτική](http://www.ayende.com/Blog/archive/2007/06/08/The-Auto-Mocking-Container.aspx) μπορεί να έχει ενδιαφέρον.


Αν ψάχνετε σε BDD πάρα τότε [NBehave](http://nbehave.org/) είναι πιθανώς μια καλή επιλογή. Αν όμως σημαίνει ακριβώς το στυλ της BDD που σχετίζεται με τον έλεγχο της μονάδας (xSpec) αν και μπορείτε να πάρετε μακριά με την προσθήκη ενός πλαισίου (αν και τα πράγματα όπως [specunit](http://code.google.com/p/specunit-net/) προσθέτουν κάποια synctactic ζάχαρη), αλλά ίσως να θέλετε να εξετάσει [MSpec](http://codebetter.com/blogs/aaron.jensen/archive/2008/05/08/introducing-machine-specifications-or-mspec-for-short.aspx) είναι επίσης ενδιαφέρουσα.

 

Ελέγξτε screencast Rob Conery για BDD χρήση MSpec. Πολύ εντυπωσιακό <http://blog.wekeroad.com/mvc-storefront/kona-3/>


edit: εγώ τώρα χρησιμοποιούν αυτή την προσέγγιση: <http://10printhello.com/the-one-bdd-framework-to-rule-them/>

 

Αυτό είναι πιθανώς μια περίληψη του τι έχει ήδη ειπωθεί, αλλά και για TDD εγώ προσωπικά χρήση Rhino χλευάζει και MBUnit. Rhino χλευάζει είναι μια σκωπτική πλαίσιο που είναι δωρεάν και ανοιχτού κώδικα. Το πλεονέκτημα της Rhino χλευάζει είναι ότι δεν χρειάζεται να χρησιμοποιήσετε μαγικό χορδές σε ρύθμιση προσδοκίες σας, όπως κάνετε σε NMock. 


Μου αρέσει MBUnit γιατί MbUnit έχει την έννοια της RowTests που σας επιτρέπουν να ποικίλλουν εισόδους σας με τη μέθοδο δοκιμής σας. MBUnit είναι ελεύθερα διαθέσιμο.


Μπορείτε επίσης να θέλετε να βεβαιωθείτε ότι ό, τι θα επιλέξετε για το πλαίσιο δοκιμών μονάδας σας υποστηρίζεται από CI σας (Συνεχής διακομιστή Integration). Nunit υποστηρίζεται από προεπιλογή στην κρουαζιέρα Control.NET και θα πρέπει να κάνετε μια μικρή επιπλέον εργασία για να πάρει MBUnit να εργαστούν σε ccnet.


Από τη σκοπιά της IDE θα πρέπει να έχετε TestDriven.NET. TestDriven.NET σας επιτρέπει να κάντε δεξί κλικ και να εκτελέσετε δοκιμές στο IDE και υποστηρίζει MBUnit και Nunit και άλλα.


NBehave είναι η βιβλιοθήκη BDD έχω χρησιμοποιήσει. Δεν έχω χρησιμοποιήσει κάποια άλλα γι 'αυτό δεν θα μπορούσε να συγκρίνουν και να αντιπαραβάλλουν τα μαζί σας, αλλά NBehave υποστηρίζεται από Gallio από την ομάδα MBUnit, το οποίο σημαίνει ότι μπορείτε να εκτελέσετε τις δοκιμές σας BDD ακριβώς όπως θα κάνατε δοκιμές μονάδα σας με TestDriven.NET.


Θα ήθελα επίσης πολύ να συστήσω Resharper. Θα βρείτε την παραγωγικότητά σας να αυξάνεται σημαντικά με αυτή την refactoring και καθοδήγηση εργαλείο. Θα σας βοηθήσει με την αλλαγή κωδικού σας, καθώς αναπτύσσουν τις δοκιμές σας.


Η ελπίδα αυτό βοηθά

 

Είχα μεγάλη επιτυχία με τη χρήση [NUnit](http://www.nunit.org) επίσης.


Έχω χρησιμοποιήσει επίσης [NMock](http://www.nmock.org) όταν προέκυψε η ανάγκη για παρωδία αντικείμενα. Ως πρόσθετο πλεονέκτημα, το εργοστάσιο για τη δημιουργία mock αντικείμενα σας ονομάζεται η κοροϊδία.


Για να διευκολυνθεί η διεξαγωγή των δοκιμών μονάδας, έχω χρησιμοποιήσει [TestDriven.NET](http://testdriven.net) για την εκτέλεση δοκιμών μονάδας όπως κωδικοποιούνται. Επίσης, έχω χρησιμοποιήσει [Cruise Control .NET](http://ccnet.thoughtworks.com) για να παρακολουθήσουν SVN και βεβαιωθείτε ότι κάθε νέα διαπράττουν χτίζει και περνά όλες τις δοκιμές μονάδα.

 

Για Mock βιβλιοθήκη αντικειμένων, βρήκα τα BSD άδεια [Rhino.Mocks](http://ayende.com/projects/rhino-mocks.aspx) να είναι αρκετά ευχάριστο.

 

Πάω να πρέπει να βάλει μια κραυγή για [MOQ](http://code.google.com/p/moq/ "Αυτή είναι η ιστοσελίδα του έργου, το ελέγξουμε") . Είναι καθαρό πλαίσιο φως σκωπτική που σας βοηθά να καθοδηγούν μέσα στο λάκκο της επιτυχίας.


Τα εργαλεία ελέγχου ενσωματωμένη TFS είναι εντάξει, θα ολοκληρώσω το έργο μου, αλλά συχνά μπορεί να είναι λίγο περίπλοκη για να εργαστεί με. Οι δημιουργούνται εκθέσεις, την κάλυψη κώδικα και μερικά άλλα μέρη είναι ιδιαίτερα άσχημα, θα σας κάνουν να πάτε φαλακρός σε 22 και όχι 50.


Εάν είστε πραγματικά αγαπούν τη δοκιμή, να εξετάσει προσπαθεί κάποια Συνεχής Ολοκλήρωσης. Θα νιώσετε τον πόνο από την παλινδρόμηση γρήγορα και ενδεχομένως να σας βοηθήσει να φτάσετε στο τέλος του στόχου γρηγορότερα.


Ανεξάρτητα από το τι κάνετε δοκιμάσετε μερικά και να δούμε ποιο είναι το πιο φυσικό, αν έχετε χρόνο. Καλή τύχη και καλή κωδικοποίηση.

 

Χρησιμοποιώντας NUNIT με TFS δεν είναι πάρα πολύ δύσκολο. Υπάρχει ακόμη ένα έργο σε CodePlex να εφαρμόσει αυτό: [NUnit για την ομάδα Φτιάξτε](http://www.codeplex.com/nunit4teambuild) το οποίο ακόμα και «δημοσιεύει» τα αποτελέσματα στην αποθήκη.


Δεν το έχω δοκιμάσει - αλλά θα ήθελα να συμβουλεύουν τους πελάτες που έχουν μια μεγάλη επένδυση (ή που έχουν μια ισχυρή προτίμηση για το πάνω από το εργαλείο MSTest) σε NUNIT που ενδιαφέρονται για την εφαρμογή TFS να συνεχίσει με NUNIT, σε αντίθεση με την προσπάθεια να μετατρέψει όλα τους υπάρχουσες δοκιμές.

 

**NUnit** είναι διαθέσιμο σε <http://www.nunit.org> 
θα ήθελα να προτείνω αυτό, ακόμη και όταν εργάζονται για το MS στοίβα - η στήριξη των πλαισίων μη-MS συμβαίνει στις προεπισκοπήσεις MVC που δείχνει μια σαφή κίνηση προς τη σωστή κατεύθυνση για να μας επιτρέψει όλα για να προσαρμόσετε στοίβες μας για να χωρέσει.

 

Για το έργο μου, χρησιμοποίησα NUnit και TestDriven.NET με μεγάλη επιτυχία. Μπορείτε είτε να δημιουργήσετε μια ξεχωριστή βιβλιοθήκη μόνο για να φιλοξενήσει κώδικα δοκιμής σας ή μπορείτε να το βάλετε στο εκτελέσιμο ή τη βιβλιοθήκη σας. Όλα εξαρτώνται αν θέλετε κωδικό παραγωγής σας να συμπλέκονται με τον κωδικό δοκιμής σας.


Για εξάρτηση Injection, μπορώ να χρησιμοποιήσω [NInject](http://www.ninject.org/ "NInject") στο τρέχον έργο μου και σπουδαίο έργο του. Εάν χρησιμοποιείτε την ένεση Κατασκευαστής, δεν χρειάζεται να ακαταστασία τον κωδικό σας με την [να χορηγείτε] χαρακτηριστικό.


Δεν έχω χρησιμοποιήσει μια παρωδία βιβλιοθήκη μου έργο .NET 2.0, αλλά για ένα άλλο έργο .NET 3.5 θα χρησιμοποιήσω [MOQ](http://code.google.com/p/moq/ "MOQ")


Σημειώστε ότι όλο αυτό λειτουργεί με .NET 2.0 και άνω. (Εκτός MOQ)

 

Θα ήθελα να συστήσω το εξής:


**TestDriven.NET** - Μονάδα Δοκιμές add on για VS που είναι πλήρως ενσωματωμένη με όλες τις μεγάλες πλαίσια δοκιμών μονάδα, συμπεριλαμβανομένων NUnit, MbUnit κλπ ...


**Typemock Απομόνωσης** - Ένα πλαίσιο σκωπτική για [δοκιμή Μονάδα Καθαρή](http://www.typemock.com/Docs/writing_unit_tests_with_isolator.html)


**[NUnit](http://www.nunit.org)** - Ένα ανοικτό πλαίσιο δοκιμών μονάδας πηγή που είναι σε C #.

 

NUnit είναι πάντα ένα από τα αγαπημένα μου. Ωστόσο, αν χρησιμοποιείτε TFS ο έλεγχος πηγή σας προτείνω να κολλήσει με τη στοίβα Microsoft.

 