Δοκιμή μονάδων με Laravel | Laraship

1
Δοκιμή μονάδων με Laravel |  Laraship

Εισαγωγή

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

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

Μονάδα PHPU

Για να ξεκινήσετε με το PHPUnit, θα πρέπει να το εγκαταστήσετε χρησιμοποιώντας το Composer. Εάν χρησιμοποιείτε Laravel ή άλλο πλαίσιο PHP, το PHPUnit ενδέχεται να περιλαμβάνεται ήδη στις εξαρτήσεις του έργου σας. Αφού εγκαταστήσετε το PHPUnit, μπορείτε να δημιουργήσετε μια νέα κλάση δοκιμής και να αρχίσετε να γράφετε δοκιμές.

Ας υποθέσουμε ότι έχετε μια απλή συνάρτηση PHP που προσθέτει δύο αριθμούς μαζί:

function add($a, $b) {
return $a + $b;
}

Για να γράψετε μια δοκιμή μονάδας για αυτήν τη συνάρτηση, θα δημιουργήσετε μια νέα κλάση δοκιμής που επεκτείνει τη μονάδα PHPU TestCase τάξη, ως εξής:

use PHPUnit\Framework\TestCase;

class AddTest extends TestCase {

public function testAdd() {

$this->assertEquals(4, add(2, 2));

$this->assertEquals(0, add(-2, 2));

$this->assertEquals(-4, add(-2, -2));

}

}

Αυτή η κλάση δοκιμής περιέχει μια ενιαία μέθοδο δοκιμής που ονομάζεται testAddτο οποίο χρησιμοποιεί το assertEquals ισχυρισμός για να ελεγχθεί ότι η add Η συνάρτηση επιστρέφει το αναμενόμενο αποτέλεσμα για διαφορετικές τιμές εισόδου.

Για να εκτελέσετε αυτήν τη δοκιμή, μπορείτε να χρησιμοποιήσετε το phpunit εντολή στο τερματικό σας:

vendor/bin/phpunit AddTest

Εάν η δοκιμή περάσει, θα πρέπει να δείτε την έξοδο ως εξής:

PHPUnit 8.5.5 by Sebastian Bergmann and contributors.

. 1 / 1 (100%)

Time: 51 ms, Memory: 4.00 MB

OK (1 test, 3 assertions)

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

Επιπρόσθετα με assertEquals ισχυρισμός, το PHPUnit παρέχει πολλούς άλλους ισχυρισμούς που μπορείτε να χρησιμοποιήσετε για να γράψετε πιο περίπλοκα τεστ. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε το assertTrue ισχυρισμός για να ελέγξετε ότι μια τιμή είναι αληθής, το assertContains ισχυρισμός για να ελέγξετε ότι μια συμβολοσειρά περιέχει μια συγκεκριμένη υποσυμβολοσειρά ή το expectException ισχυρισμός για να ελέγξετε ότι μια συνάρτηση δημιουργεί μια εξαίρεση υπό ορισμένες συνθήκες.

Βέλτιστες πρακτικές:

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

  • Γράψτε τεστ που είναι ευανάγνωστα και κατανοητά. Χρησιμοποιήστε ονόματα περιγραφικών μεθόδων και σχόλια για να εξηγήσετε τον σκοπό κάθε δοκιμής.
  • Γράψτε τεστ εστιασμένα και ανεξάρτητα. Κάθε δοκιμή θα πρέπει να δοκιμάζει μια μέθοδο μεμονωμένης συνάρτησης ή κλάσης χωρίς να βασίζεται σε άλλα μέρη του συστήματος.
  • Χρησιμοποιήστε δεδομένα δοκιμής που καλύπτουν μια σειρά πιθανών εισόδων και περιπτώσεων ακμών. Βεβαιωθείτε ότι έχετε ελέγξει τόσο τις έγκυρες όσο και τις μη έγκυρες εισόδους.
  • Διατηρήστε τις δοκιμές σας ενημερωμένες καθώς εξελίσσεται η βάση κωδικών. Όταν κάνετε αλλαγές στον κώδικα, ενημερώστε τις αντίστοιχες δοκιμές για να αντικατοπτρίζουν αυτές τις αλλαγές.
  • Εκτελείτε τα τεστ σας συχνά και αυτοματοποιήστε τα όσο το δυνατόν περισσότερο. Χρησιμοποιήστε εργαλεία συνεχούς ενοποίησης όπως το Travis CI ή το CircleCI για να εκτελείτε αυτόματα τις δοκιμές σας σε κάθε δέσμευση.

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

Για να δημιουργήσετε μια δοκιμαστική μονάδα Laravel, ακολουθήστε τα εξής βήματα:

  1. Δημιουργήστε ένα νέο έργο Laravel ή χρησιμοποιήστε ένα υπάρχον. Ανοίξτε ένα τερματικό και μεταβείτε στον κατάλογο του έργου σας.
  2. Χρησιμοποιήστε το make:test Εντολή Artisan για τη δημιουργία νέου αρχείου δοκιμής. Για παράδειγμα, για να δημιουργήσετε μια δοκιμή για έναν ελεγκτή με όνομα ExampleControllerεκτελέστε την ακόλουθη εντολή:

php artisan make:test ExampleControllerTest

Αυτό θα δημιουργήσει ένα νέο αρχείο δοκιμής στο tests/Feature Ευρετήριο.

  1. Ανοίξτε το νέο δοκιμαστικό αρχείο (ExampleControllerTest.php) στον επεξεργαστή κώδικα σας.
  2. Προσθέστε μεθόδους δοκιμής στο αρχείο. Οι μέθοδοι δοκιμής πρέπει να ξεκινούν με τη λέξη test και περιέχει τον κωδικό που θέλετε να δοκιμάσετε. Για παράδειγμα:
public function testExample()
{
$response = $this->get('/');

$response->assertStatus(200);
}

Αυτή η μέθοδος δοκιμής στέλνει ένα αίτημα GET στο ριζικό URL της εφαρμογής και ελέγχει ότι η απάντηση έχει κωδικό κατάστασης 200.

  1. Εκτελέστε τις δοκιμές χρησιμοποιώντας το php artisan test εντολή. Αυτό θα εκτελέσει όλες τις δοκιμές στο tests/ Ευρετήριο.

Schreibe einen Kommentar