C #. Παράδειγμα δημιουργίας δοκιμής μονάδας στο MS Visual Studio
- Περιεχόμενο
- Εκτέλεση
- 2. Προετοιμασία του κειμένου του module Program.cs
- 2.2. Κάντε την κλάση του προγράμματος δημόσια
- 3. Καταχώρηση του δοκιμασμένου προγράμματος
- 4. Δημιουργία δοκιμής
- 4.1. Προσθήκη νέου έργου στη λύση
- 4.2. Δομή διαλύματος
- 4.3. Το κείμενο του αρχείου "UnitTest1.cs". Χαρακτηριστικά [TestMethod] και [TestClass]
- 4.4. Πραγματοποίηση αλλαγών στο κείμενο της μονάδας UnitTest1. Αλλαγή του ονόματος της μεθόδου δοκιμής
- 4.5. Σύνδεση του έργου MinApp με το έργο TestMinApp
- 4.6. Πραγματοποίηση αλλαγών στο κείμενο της μονάδας UnitTest1.cs
- 4.6.2. TestMin () κείμενο μεθόδου
- 4.7. Μοντέλο ΜοντέλοTest1.cs
- 5. Εκτελέστε τη δοκιμή και ελέγξτε το αποτέλεσμα της δοκιμής
- 6. Το αποτέλεσμα. Αλληλεπίδραση μεταξύ έργων
Αυτό το θέμα περιγράφει τη βήμα προς βήμα διαδικασία δημιουργίας ενός απλού τεστ Μονάδας στο Microsoft Visual Studio 2010 (C #) για μια εφαρμογή όπως η εφαρμογή κονσόλας. Χρησιμοποιώντας αυτό το παράδειγμα, μπορείτε να μάθετε πώς μπορείτε να δημιουργήσετε τις δικές σας δοκιμές μονάδας. Το παράδειγμα δείχνει επίσης τη χρήση της κλάσης Assert για έλεγχο της λειτουργίας των λειτουργιών.
Περιεχόμενο
Η κατάσταση του προβλήματος
Για μια εφαρμογή όπως η εφαρμογή κονσόλας, αναπτύξτε μια δοκιμή μονάδας που ελέγχει τη λειτουργία της λειτουργίας Min (), η οποία καθορίζει το μέγιστο στοιχείο τριών αριθμών.
Για τη λειτουργία Min (), ορίστε τη μέθοδο δοκιμής σε TestMin (). Ελέγξτε τη λειτουργία.
Εκτέλεση
1. Δημιουργήστε μια εφαρμογή χρησιμοποιώντας το πρότυπο εφαρμογής Console Application
Εκτελέστε το MS Visual Studio 2010. Για να δημιουργήσετε ένα έργο χρησιμοποιώντας το πρότυπο εφαρμογής της κονσόλας, πρέπει να καλέσετε την ακόλουθη ακολουθία εντολών:
Αρχείο -> Νέο -> Έργο ...
Ως αποτέλεσμα, ανοίγει το παράθυρο Νέο έργο. Στο παράθυρο, επιλέξτε το πρότυπο εφαρμογής κονσόλας όπως φαίνεται στο σχήμα 1. Το πρότυπο επιλέχθηκε στην καρτέλα Visual C #.
Visual C # -> Εφαρμογή κονσόλας
Το Σχ. 1. Παράθυρο "Νέο έργο". Επιλογή εφαρμογής τύπου εφαρμογής κονσόλας
2. Προετοιμασία του κειμένου του module Program.cs
2.1. Προσθέστε τη συνάρτηση Min () στο κείμενο της μονάδας
Στο σώμα της κλάσης Προγράμματος, προσθέστε το κείμενο της λειτουργίας Min ().
Η λειτουργία δηλώνεται ως δημόσια (στατική) και δημόσια. Min () κείμενο λειτουργίας
δημόσιος στατικός int min (int a, int b, int c) {int min = a; αν (min> b) min = b; αν (min> c) min = c; επιστροφή λεπτά. }}
Το Σχ. 2. Προβολή του παραθύρου MS Visual Studio 2010, ενότητα "Program.cs"
2.2. Κάντε την κλάση του προγράμματος δημόσια
Για να έχετε πρόσβαση στη συνάρτηση Min () της κλάσης Προγράμματος, πρέπει να κάνετε αυτήν την τάξη διαθέσιμη στο κοινό. Για να γίνει αυτό, πριν δηλώσετε μια τάξη, πρέπει να ορίσετε τη δημόσια λέξη-κλειδί.
... namespace MinApp {πρόγραμμα δημόσιας τάξης {// μεθόδους κλάσης // ...}} ...
Μετά από αυτό, το πρόγραμμα δοκιμών είναι έτοιμο.
3. Καταχώρηση του δοκιμασμένου προγράμματος
Επί του παρόντος, η καταχώριση του προγράμματος που εξετάζεται είναι η εξής:
χρησιμοποιώντας το σύστημα. χρησιμοποιώντας System.Collections.Generic; χρησιμοποιώντας System.Linq. χρησιμοποιώντας System.Text; Ο χώρος ονομάτων MinApp {public class Program {δημόσιο static int Min (int a, int b, int c) {int min = a; αν (min> b) min = b; αν (min> c) min = c; επιστροφή λεπτά. } static void Κύριο (συμβολοσειρά [] args) {Console.WriteLine ("Επίδειξη δοκιμής μονάδας σε C #.")? }}}
Δεδομένου ότι το πρόγραμμα αυτό θα δοκιμαστεί από άλλη ενότητα δοκιμής, δεν χρειάζεται να εισάγετε τίποτα άλλο στη λειτουργία Main (). Επειδή, σύμφωνα με την κατάσταση του προβλήματος, πρέπει να ελέγξετε τη λειτουργία της λειτουργίας Min (). Και αυτό θα γίνει από τη μονάδα ελέγχου. Προς το παρόν, το πρόγραμμά μας είναι έτοιμο για δοκιμή.
4. Δημιουργία δοκιμής
Η δοκιμή δημιουργείται από ένα ξεχωριστό έργο (Project) στη λύση (Λύση). Το πρόγραμμα που δοκιμάζεται δεν το γνωρίζει. Το πρόγραμμα που θα δοκιμάσει (το πρόγραμμα δοκιμών) θα καλέσει τις λειτουργίες του προγράμματος που δοκιμάζεται. Στην περίπτωσή μας, το πρόγραμμα δοκιμής θα καλέσει τη λειτουργία
int Min (int, int, int);
4.1. Προσθήκη νέου έργου στη λύση
Για αυτή τη λύση (Λύση) πρέπει να προσθέσετε ένα νέο έργο χρησιμοποιώντας την εντολή
Αρχείο-> Προσθήκη-> Νέο Έργο ...
Το παράθυρο για τη δημιουργία ενός νέου έργου φαίνεται στο σχήμα 3.
Το Σχ. 3. Παράθυρο για τη δημιουργία ενός έργου του τύπου Test Project
Μια ομάδα Visual C # templates -> Test έχει επιλεγεί στο παράθυρο. Από τα εμφανιζόμενα πρότυπα επιλέγεται το πρότυπο έργου "Test Project". Στο πεδίο "Όνομα" αναγράφεται το όνομα του έργου που θα ελέγξει το πρόγραμμά μας. Πρέπει να ορίσετε, για παράδειγμα, το TestMinApp. Το έργο βρίσκεται σε ξεχωριστό φάκελο "E: \ Test \ MinApp".
Το Σχ. 4. Το κείμενο της μονάδας UnitTest1.cs. Παράθυρο βοηθητικού προγράμματος Λύση Explorer με τα έργα TestMinApp και MinApp που εμφανίζονται
4.2. Δομή διαλύματος
Όπως φαίνεται από το Σχήμα 4, το βοηθητικό πρόγραμμα Solution Explorer εμφανίζει τη δομή Solution Items, η οποία περιέχει δύο έργα:
- έργο MinApp. Αυτό είναι ένα έργο που δημιουργήθηκε χρησιμοποιώντας το πρότυπο εφαρμογής κονσόλας με τη λειτουργία Min () που θέλετε να διαμαρτυρηθείτε.
- Πρόγραμμα TestMinApp. Το έργο αυτό έχει σχεδιαστεί για να δοκιμάσει τα χαρακτηριστικά του έργου MinApp. Ο κώδικας προγράμματος που ελέγχει τη λειτουργία Min () θα εισαχθεί στο αρχείο ProjectTest1 του έργου TestMinApp.
Και τα δύο έργα μπορούν να πραγματοποιηθούν ανεξάρτητα το ένα από το άλλο.
4.3. Το κείμενο του αρχείου "UnitTest1.cs". Χαρακτηριστικά [TestMethod] και [TestClass]
Στο έργο TestMinApp, το πρωτεύον ενδιαφέρον παρουσιάζει το αρχείο δοκιμής UnitTest1.cs. Αυτό το αρχείο περιέχει μεθόδους που θα ελέγξουν τις λειτουργίες του έργου MinApp. Το έργο TestMinApp μπορεί να περιέχει οποιοδήποτε αριθμό αρχείων που περιέχουν δοκιμές (για παράδειγμα, UnitTest2.cs, UnitTest3.cs κ.λπ.).
Η καταχώρηση του αρχείου UnitTest1.cs που δημιουργήθηκε από το MS Visual Studio 2010 έχει ως εξής:
χρησιμοποιώντας το σύστημα. χρησιμοποιώντας System.Text; χρησιμοποιώντας System.Collections.Generic; χρησιμοποιώντας System.Linq. χρησιμοποιώντας το Microsoft.VisualStudio.TestTools.UnitTesting; όνομα χώρου TestMinApp {/// <summary> /// Συνοπτική περιγραφή για UnitTest1 /// </ summary> [TestClass] δημόσια τάξη UnitTest1 {public UnitTest1 () {// // TODO: Προσθήκη λογικής δομοστοιχείου εδώ //} ιδιωτικό TestContext testContextInstance; /// <summary> /// Γίνεται ή ορίζει το πλαίσιο δοκιμής. /// </ summary> δημόσιο TestContext TestContext {get {επιστροφή testContextInstance; } set {testContextInstance = value; }} #region Πρόσθετα χαρακτηριστικά δοκιμής // μπορείτε να χρησιμοποιήσετε τις δοκιμές σας // // Χρησιμοποιήστε το ClassInitialize // [ClassInitialize ()] // Δημόσια στατική κενό MyClassInitialize (TestContext testContext) {} // // Χρησιμοποιήστε το ClassCleanup για να εκτελέσετε κώδικα αφού όλες οι δοκιμές σε μια κλάση έχουν εκτελεστεί // [ClassCleanup ()] // public static void MyClassCleanup () {} // // Χρησιμοποιήστε το TestInitialize για να εκτελέσετε τον κώδικα πριν εκτελέσετε κάθε δοκιμή // [TestInitialize ()] // public void MyTestInitialize () {} // // Χρησιμοποιήστε το TestCleanup ) {} // #endregion [TestMethod] δημόσιο κενό TestMethod1 () {// // TODO: Προσθέστε τη δοκιμαστική λογική εδώ //}}}
Όπως φαίνεται από τον παραπάνω κώδικα, το αρχείο περιέχει μια κλάση που ονομάζεται UnitTest1. Η κλάση έχει μια δημόσια μέθοδο που ονομάζεται TestMethod1 (). Πριν από την εφαρμογή της μεθόδου TestMethod1 (), τοποθετείται το χαρακτηριστικό [TestMethod]. Αυτό σημαίνει ότι πρέπει να εισαγάγετε τον κώδικα που θα ελέγξει τις λειτουργίες του έργου MinApp στο σώμα της μεθόδου.
Στην τάξη, μπορείτε να εισαγάγετε οποιουσδήποτε αριθμούς μεθόδων που θα δοκιμάσουν διαφορετικές λειτουργίες από διαφορετικές ενότητες. Το κύριο πράγμα είναι ότι αυτές οι μέθοδοι σημειώνονται με το χαρακτηριστικό [TestMethod].
4.4. Πραγματοποίηση αλλαγών στο κείμενο της μονάδας UnitTest1. Αλλαγή του ονόματος της μεθόδου δοκιμής
Μπορείτε να αλλάξετε τα ονόματα των μεθόδων και να προσθέσετε νέες μεθόδους που έχουν επισημανθεί με το χαρακτηριστικό [TestMethod] στη μονάδα UnitTest1.cs. Με αυτό τον τρόπο, στο κείμενο της μονάδας UnitTest1.cs, θα πρέπει να μετονομάσετε τη μέθοδο TestMethod1 () σε TestMin ().
Αφού γίνουν οι αλλαγές, το συντετμημένο κείμενο της ενότητας του αρχείου UnitTest1.cs θα είναι:
χρησιμοποιώντας το σύστημα. χρησιμοποιώντας System.Text; χρησιμοποιώντας System.Collections.Generic; χρησιμοποιώντας System.Linq. χρησιμοποιώντας το Microsoft.VisualStudio.TestTools.UnitTesting; ονοματοδοσία TestMinApp {/// <summary> /// Συνοπτική περιγραφή για UnitTest1 /// </ summary> [TestClass] δημόσια τάξη UnitTest1 {... [TestMethod] public void TestMin () {// // TODO: Προσθήκη δοκιμής λογική εδώ //}}}
4.5. Σύνδεση του έργου MinApp με το έργο TestMinApp
Για να έχετε πρόσβαση στη λειτουργία Min () (έργο MinApp) από το έργο TestMinApp, πρέπει να συνδέσετε το χώρο ονομάτων στο οποίο βρίσκεται αυτή η λειτουργία.
Για να το κάνετε αυτό, πρώτα απ 'όλα, πρέπει να καλέσετε το μενού περιβάλλοντος για το έργο TestMinApp. Στη συνέχεια, στο μενού περιβάλλοντος πρέπει να καλέσετε την εντολή "Προσθήκη αναφοράς ..." (Εικόνα 5).
Το Σχ. 5. Η ομάδα "Add Referencse ..."
Ως αποτέλεσμα, θα ανοίξει το παράθυρο Προσθήκη αναφοράς, στο οποίο πρέπει να επιλέξετε το έργο MinApp.
Το Σχ. 6. Παράθυρο "Προσθήκη αναφοράς". Σύνδεση του έργου MinApp
Μετά τις ολοκληρωμένες ενέργειες, οι λειτουργίες του έργου MinApp θα είναι διαθέσιμες για χρήση στο έργο TestMinApp.
Το Σχ. 7. Καρτέλα αναφορών με συνδεδεμένο έργο MinApp
4.6. Πραγματοποίηση αλλαγών στο κείμενο της μονάδας UnitTest1.cs
4.6.1. Προσθέτοντας το χώρο ονομάτων MinApp στη μονάδα UnitTest1.cs
Σε αυτό το βήμα, στη μονάδα UnitTest1.cs, πρέπει να προσθέσετε το χώρο ονομάτων MinApp χρησιμοποιώντας την οδηγία χρήσης:
χρησιμοποιώντας το σύστημα. χρησιμοποιώντας System.Text; χρησιμοποιώντας System.Collections.Generic; χρησιμοποιώντας System.Linq. χρησιμοποιώντας το Microsoft.VisualStudio.TestTools.UnitTesting; χρησιμοποιώντας το MinApp. όνομα χώρου TestMinApp {...}
4.6.2. TestMin () κείμενο μεθόδου
Στο κείμενο της μεθόδου TestMin (), πληκτρολογήστε τον ακόλουθο κώδικα:
... [TestMethod] public void TestMin () {// // TODO: Προσθέστε τη δοκιμαστική λογική εδώ // int min; min = Πρόγραμμα. Μίνι (3, 4, 5). Assert.AreEqual (2, λεπτά); } ...
4.7. Μοντέλο ΜοντέλοTest1.cs
Το κείμενο ολόκληρης της μονάδας UnitTest1.cs έχει ως εξής:
χρησιμοποιώντας το σύστημα. χρησιμοποιώντας System.Text; χρησιμοποιώντας System.Collections.Generic; χρησιμοποιώντας System.Linq. χρησιμοποιώντας το Microsoft.VisualStudio.TestTools.UnitTesting; χρησιμοποιώντας το MinApp. όνομα χώρου TestMinApp {/// <summary> /// Συνοπτική περιγραφή για UnitTest1 /// </ summary> [TestClass] δημόσια τάξη UnitTest1 {public UnitTest1 () {// // TODO: Προσθήκη λογικής δομοστοιχείου εδώ //} ιδιωτικό TestContext testContextInstance; /// <summary> /// Γίνεται ή ορίζει το πλαίσιο δοκιμής. /// </ summary> δημόσιο TestContext TestContext {get {επιστροφή testContextInstance; } set {testContextInstance = value; }} #region Πρόσθετα χαρακτηριστικά δοκιμής // μπορείτε να χρησιμοποιήσετε τις δοκιμές σας // // Χρησιμοποιήστε το ClassInitialize // [ClassInitialize ()] // Δημόσια στατική κενό MyClassInitialize (TestContext testContext) {} // // Χρησιμοποιήστε το ClassCleanup για να εκτελέσετε κώδικα αφού όλες οι δοκιμές σε μια κλάση έχουν εκτελεστεί // [ClassCleanup ()] // public static void MyClassCleanup () {} // // Χρησιμοποιήστε το TestInitialize για να εκτελέσετε τον κώδικα πριν εκτελέσετε κάθε δοκιμή // [TestInitialize ()] // public void MyTestInitialize () {} // // Χρησιμοποιήστε το TestCleanup για να εκτελέσετε τον κώδικα μετά την εκτέλεση κάθε δοκιμής // [TestCleanup ()] // public void MyTestCleanup ) {} // #endregion [TestMethod] δημόσιο κενό TestMin () {// // TODO: Προσθήκη δοκιμαστικής λογικής εδώ // int min; min = Πρόγραμμα. Μίνι (3, 4, 5). Assert.AreEqual (2, λεπτά); }}}
5. Εκτελέστε τη δοκιμή και ελέγξτε το αποτέλεσμα της δοκιμής
Στο Microsoft Visual Studio 2010, ένα ειδικό μενού εντολών που ονομάζεται Δοκιμή υλοποιείται για εργασία με δοκιμές μονάδας.
Για να εκτελέσετε μια δοκιμή εκτέλεσης, επιλέξτε μία από τις εντολές.
Δοκιμή -> Εκτέλεση -> Δοκιμές στο τρέχον πλαίσιοή
Δοκιμή -> Εκτέλεση -> Όλες οι δοκιμές στη λύση
όπως φαίνεται στο σχήμα 8.
Το Σχ. 8. Κλήση της εντολής δοκιμής εκκίνησης και προβολή του αποτελέσματος.
Αφού εκτελέσετε τη δοκιμή, το αποτέλεσμα μπορεί να προβληθεί στο κάτω μέρος του παραθύρου Αποτελέσματα δοκιμών. Όπως φαίνεται από το σχήμα, η δοκιμή δεν έχει περάσει. Αυτό είναι λογικό, αφού στη λειτουργία Assert.AreEqual () συγκρίνουμε τους αριθμούς 2 και 3, οι οποίοι είναι διαφορετικοί. Εδώ, ο αριθμός 2 εισάγεται ειδικά αντί του 3.
Αν αντί του αριθμού 2 εισαγάγετε τη σωστή απάντηση - τον αριθμό 3 (τουλάχιστον μεταξύ 3, 4, 5), τότε θα περάσει η δοκιμή (Εικόνα 9). Στην περίπτωση αυτή, το κείμενο της μεθόδου TestMin () θα έχει ως εξής:
... [TestMethod] public void TestMin () {// // TODO: Προσθέστε τη δοκιμαστική λογική εδώ // int min; min = Πρόγραμμα. Μίνι (3, 4, 5). Assert .AreEqual (3, λεπτά); } ...
Το παράθυρο αποτελεσμάτων παρουσιάζεται στο σχήμα 9.
Το Σχ. 9. Αποτέλεσμα δοκιμής για την περίπτωση, εάν εισαγάγετε τη σωστή απάντηση
Τώρα μπορούμε να συμπεράνουμε ότι η λειτουργία Min () για αυτήν την περίπτωση λειτουργεί σωστά.
6. Το αποτέλεσμα. Αλληλεπίδραση μεταξύ έργων
Σε αυτή την εργασία, σχηματίζονται δύο σχέδια στη λύση. Ένα έργο MinApp περιέχει τη λειτουργία Min () που θέλετε να δοκιμάσετε. Το δεύτερο έργο TestMinApp περιέχει μεθόδους δοκιμών.
Στο Microsoft Visual Studio 2010, εκτελείται κάθε έργο χρησιμοποιώντας διαφορετικές εντολές μενού. Έτσι, το έργο MinApp ξεκινάει με τον συνήθη τρόπο από το μενού Εκτέλεση. Και το έργο TestMinApp ξεκινάει από το ειδικό μενού Test.