Πώς να γράψετε δοκιμές μονάδων σε C# για καλύτερη ποιότητα κώδικα

Pos Na Grapsete Dokimes Monadon Se C Gia Kalytere Poioteta Kodika



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

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

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







Περιβάλλον Δοκιμών

Ας ξεκινήσουμε συζητώντας τη δοκιμαστική λύση και πώς να διαμορφώσουμε τη βασική μας εφαρμογή.



Για να ακολουθήσετε και να αναπαραγάγετε την εφαρμογή σε αυτό το σεμινάριο, βεβαιωθείτε ότι έχετε τα εξής:



  1. Εγκατεστημένο Visual Studio
  2. Διαμόρφωσε τα εργαλεία .NET και C# στον υπολογιστή σας

Δημιουργήστε μια Εφαρμογή

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





Στη συνέχεια, δημιουργήστε ένα νέο έργο και επιλέξτε τον τύπο έργου ως MSTest Test Project και δώστε του οποιοδήποτε επιθυμητό όνομα.



Βεβαιωθείτε ότι έχετε επιλέξει 'Προσθήκη στη λύση' και επιλέξτε την εφαρμογή που δημιουργήσατε προηγουμένως.

Θα πρέπει να έχετε την κύρια εφαρμογή και το έργο δοκιμής μονάδας όπως φαίνεται στην εξερεύνηση λύσεων.

Γράψτε τον Κωδικό για την Εφαρμογή Αριθμομηχανής

Το επόμενο βήμα είναι να γράψουμε τον κώδικα για την εφαρμογή αριθμομηχανής μας. Μπορούμε να το κάνουμε αυτό στο αρχείο CalcApp 'program.cs'.

Εφόσον αναζητούμε βασικές λειτουργίες, μπορούμε να προσθέσουμε τον πηγαίο κώδικα ως εξής:

Αριθμομηχανή δημόσιας τάξης
{
δημόσιο διπλό Προσθήκη ( διπλό ένα , διπλό σι )
{
ΕΠΙΣΤΡΟΦΗ ένα + σι ;
}

δημόσιο διπλό Αφαιρώ ( διπλό ένα , διπλό σι )
{
ΕΠΙΣΤΡΟΦΗ ένα - σι ;
}

δημόσιο διπλό Πολλαπλασιάζω ( διπλό ένα , διπλό σι )
{
ΕΠΙΣΤΡΟΦΗ ένα * σι ;
}

δημόσιο διπλό διαιρέστε ( διπλό ένα , διπλό σι )
{
αν ( σι == 0 )
ρίξτε νέο DivideByZeroException ( ) ;
ΕΠΙΣΤΡΟΦΗ ένα / σι ;
}
}

Όπως μπορείτε να μαντέψετε, ο προηγούμενος κώδικας δημιουργεί μια εφαρμογή αριθμομηχανής που μπορεί να εκτελέσει τις βασικές αριθμητικές εφαρμογές.

Γράψτε τα Unit Tests

Μόλις τελειώσουμε, μπορούμε να γράψουμε τα τεστ μονάδων για την τάξη «Αριθμομηχανή». Σε αυτήν την περίπτωση, το μόνο που χρειάζεται να κάνουμε είναι να γράψουμε τις δοκιμές στο αρχείο «UnitTest» του έργου ως εξής:

χρησιμοποιώντας το Σύστημα ;

χώρος ονομάτων CalcApp
{
Αριθμομηχανή δημόσιας τάξης
{
δημόσιο διπλό Προσθήκη ( διπλό ένα , διπλό σι )
{
ΕΠΙΣΤΡΟΦΗ ένα + σι ;
}

δημόσιο διπλό Αφαιρώ ( διπλό ένα , διπλό σι )
{
ΕΠΙΣΤΡΟΦΗ ένα - σι ;
}

δημόσιο διπλό Πολλαπλασιάζω ( διπλό ένα , διπλό σι )
{
ΕΠΙΣΤΡΟΦΗ ένα * σι ;
}

δημόσιο διπλό διαιρέστε ( διπλό ένα , διπλό σι )
{
αν ( σι == 0 )
ρίξτε νέο DivideByZeroException ( ) ;
ΕΠΙΣΤΡΟΦΗ ένα / σι ;
}
}
}

χώρο ονομάτων CalcTest
{
[ TestClass ]
δημόσια τάξη CalculatorTests
{
ιδιωτική αριθμομηχανή αριθμομηχανή ;

[ TestInitialize ]
δημόσιο κενός Ρύθμιση ( )
{
αριθμομηχανή = νέα αριθμομηχανή ( ) ;
}

[ Μέθοδος ελέγχου ]
δημόσιο κενός Add_TwoPositive Numbers_ReturnsCorrectSum ( )
{
ήταν το αποτέλεσμα = αριθμομηχανή. Προσθήκη ( 5 , 5 ) ;
Διεκδικώ. Είναι ίσα ( 10 , αποτέλεσμα ) ;
}

[ Μέθοδος ελέγχου ]
δημόσιο κενός Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
ήταν το αποτέλεσμα = αριθμομηχανή. Αφαιρώ ( 10 , 5 ) ;
Διεκδικώ. Είναι ίσα ( 5 , αποτέλεσμα ) ;
}

[ Μέθοδος ελέγχου ]
δημόσιο κενός Multiply_TwoPositive Numbers_ReturnsCorrectProduct ( )
{
ήταν το αποτέλεσμα = αριθμομηχανή. Πολλαπλασιάζω ( 5 , 5 ) ;
Διεκδικώ. Είναι ίσα ( 25 , αποτέλεσμα ) ;
}

[ Μέθοδος ελέγχου ]
[ ExpectedException ( του είδους ( DivideByZeroException ) ) ]
δημόσιο κενός Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
ήταν το αποτέλεσμα = αριθμομηχανή. διαιρέστε ( 5 , 0 ) ;
}

[ Μέθοδος ελέγχου ]
δημόσιο κενός Divide_TwoPositive Numbers_ReturnsCorrectQuotient ( )
{
ήταν το αποτέλεσμα = αριθμομηχανή. διαιρέστε ( 10 , 5 ) ;
Διεκδικώ. Είναι ίσα ( 2 , αποτέλεσμα ) ;
}
}
}

συμπέρασμα

Αυτό είναι ένα βασικό σεμινάριο που καλύπτει τις βασικές αρχές της δοκιμής μονάδων σε C# χρησιμοποιώντας το πλαίσιο MSTest.