Προγραμματισμός

Πώς να εργαστείτε με το πλαίσιο xUnit.Net

Χρησιμοποιώ το xUnit εδώ και αρκετό καιρό, και είναι το πλαίσιο επιλογής δοκιμών μονάδας μου. Είναι ένα εργαλείο δοκιμής μονάδας ανοιχτού κώδικα για .Net framework που είναι συμβατό με ReSharper, CodeRush, TestDriven.Net και Xamarin. Μπορείτε να επωφεληθείτε από το xUnit.Net για να διεκδικήσετε έναν τύπο εξαίρεσης εύκολα. Επίσης, μπορείτε να επεκτείνετε τα χαρακτηριστικά Fact ή Theory στο xUnit.Net και παρέχει εξαιρετική υποστήριξη για τη σύνταξη παραμετροποιημένων δοκιμών μονάδας. Ακολουθεί ο σύνδεσμος αποθετηρίου Github για το xUnit.Net.

Δείτε πώς μπορείτε να εργαστείτε με το xUnit.net στο Visual Studio. Για αυτήν την επίδειξη, θα χρησιμοποιήσουμε το Visual Studio 2015, αν και μπορείτε να εργαστείτε και με άλλες συμβατές εκδόσεις του Visual Studio. Τώρα, ακολουθήστε αυτά τα απλά βήματα για να ρυθμίσετε το περιβάλλον σας για εργασία με το xUnit.Net στο Visual Studio.

  1. Ανοίξτε το Visual Studio 2015 UDE
  2. Δημιουργήστε ένα νέο έργο τύπου "Βιβλιοθήκη κατηγορίας"
  3. Αποθηκεύστε το έργο με ένα όνομα
  4. Στη συνέχεια, εγκαταστήστε το xUnit.Net μέσω του NuGet Package Manager

Και αυτό είναι! Για να εκτελέσετε τις δοκιμές μονάδας στο Visual Studio IDE, μπορείτε να χρησιμοποιήσετε το δρομέα xUnit.net για το Visual Studio. Δείτε τι πρέπει να καθορίσετε για να εγκαταστήσετε το πακέτο xUnit.net [Runner: Visual Studio] χρησιμοποιώντας το παράθυρο της κονσόλας διαχείρισης πακέτων:

Install-Package xunit.runner.visualstudio-Έκδοση 2.1.0

Αυτό είναι το μόνο που χρειάζεστε για να ρυθμίσετε το περιβάλλον σας, ώστε να μπορείτε να εκτελέσετε τις δοκιμές μονάδας xUnit.Net μέσα από το Visual Studio IDE.

Γεγονότα και θεωρίες

Σε αντίθεση με το δημοφιλές χαρακτηριστικό [Test] με το οποίο ίσως γνωρίζετε, θα πρέπει να χρησιμοποιήσετε το χαρακτηριστικό [Fact] για να γράψετε τις μεθόδους δοκιμής μονάδας χρησιμοποιώντας το xUnit.net. Σημειώστε ότι το xUnit.net υποστηρίζει δύο τύπους δοκιμών μονάδων: γεγονότα και θεωρίες.

Ενώ τα γεγονότα χρησιμοποιούνται για τη δοκιμή αμετάβλητων συνθηκών, οι θεωρίες είναι δοκιμές που ισχύουν για ένα συγκεκριμένο σύνολο δεδομένων που διαβιβάζονται ως επιχείρημα στη μέθοδο. Συνήθως θα χρησιμοποιούσατε το χαρακτηριστικό [Fact] για να γράψετε τεστ μονάδας που δεν έχουν ορίσματα μεθόδου.

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

Υποθέτοντας ότι το xUnit.Net και ο δρομέας του για το Visual Studio είναι εγκατεστημένο, ας γράψουμε πρώτα ένα απλό τεστ μονάδας χρησιμοποιώντας το χαρακτηριστικό [Fact]. Εξετάστε την ακόλουθη μέθοδο δοκιμής μονάδας - θα εκμεταλλευτούμε το χαρακτηριστικό [Fact] εδώ.

[Γεγονός]

δημόσιο κενό CheckEqualityTest ()

  {

Assert.Equal (10, άθροισμα (5, 5));

  }

Η μέθοδος Sum δέχεται δύο ακέραιους αριθμούς και επιστρέφει το άθροισμα αυτών.

ιδιωτικό int Sum (int x, int y)

  {

επιστροφή x + y;

  }

Όταν εκτελείτε αυτήν τη δοκιμή, η δοκιμή μονάδας περνά - μπορείτε να το δείτε στο Test Explorer Windows στο Visual Studio IDE. Ας διερευνήσουμε τώρα πώς μπορούμε να συνεργαστούμε με θεωρίες για την εκτέλεση δοκιμών μονάδων που βασίζονται σε δεδομένα.

Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να εργαστείτε με δοκιμές μονάδων βάσει δεδομένων χρησιμοποιώντας το xUnit.Net.

[Θεωρία, InlineData ("Πρόκειται για δοκιμή βάσει δεδομένων", "δεδομένα")]

public void CheckInputTest (είσοδος συμβολοσειράς, συμβολοσειρά υπόστρωμα)

 {

Assert.Equal (true, input.Contains (substring));

 }

Ανατρέξτε στο απόσπασμα κώδικα που δίνεται παραπάνω. Σημειώστε τη χρήση του χαρακτηριστικού [Θεωρία]. Εκτός αν οι δοκιμές μονάδας βασίζονται σε δεδομένα, θα πρέπει να επιλέξετε το χαρακτηριστικό [Fact] στις μεθόδους δοκιμής μονάδας. Σημειώστε πώς έχουν περάσει οι παράμετροι στη μέθοδο δοκιμής μονάδας βάσει δεδομένων που ονομάζεται CheckInput. Το χαρακτηριστικό InlineData παρέχει τα δεδομένα του πηγαίου κώδικα. Σε αυτό το παράδειγμα, τα δεδομένα μεταβιβάζονται στη μέθοδο δοκιμής μονάδας μέσω ενσωματωμένων τιμών. Μπορείτε επίσης να έχετε πολλά χαρακτηριστικά InlineData - απλά πρέπει να τα διαχωρίσετε χρησιμοποιώντας κόμμα. Δείτε πώς μπορείτε να το επιτύχετε.

[Θεωρία, InlineData ("Αυτή είναι μια δοκιμή βάσει δεδομένων", "δεδομένα"),

InlineData ("Αυτό είναι ένα άλλο σύνολο δεδομένων για τη δοκιμή βάσει δεδομένων", "δεδομένα")]

public void CheckInputTest (είσοδος συμβολοσειράς, συμβολοσειρά υπόστρωμα)

        {

Assert.Equal (true, input.Contains (substring));

        }

Όταν εκτελείτε την παραπάνω δοκιμή βάσει δεδομένων, η μέθοδος CheckInputTest θα εκτελείται δύο φορές - μία φορά για κάθε σύνολο δεδομένων εισαγωγής

$config[zx-auto] not found$config[zx-overlay] not found