Lessons: Testing

The first step to writing fault tolerant and scalable code is writing bug free code. In these lessons we explore how best to test our Elixir code.

Οι δοκιμές είναι ένα σημαντικό μέρος της ανάπτυξης λογισμικού. Σε αυτό το μάθημα θα δούμε πως να δοκιμάζουμε των κωδικά μας σε Elixir με το ExUnit και μερικές από τις καλύτερες πρακτικές για να το κάνουμε.

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

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

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

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

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

Σε αυτό το μάθημα θα εξερευνήσουμε, πως η StreamData μπορεί να μας βοηθήσει να ξεπεράσουμε μερικά από αυτά τα μειονεκτήματα.