Sobes.tech
Junior — Middle

Ποια είναι η διαφορά μεταξύ mock αντικειμένων και stubs στο πλαίσιο των δοκιμών;

sobes.tech AI

Απάντηση από AI

Στο πλαίσιο των δοκιμών, τα αντικείμενα mock (mocks) και τα stubs χρησιμοποιούνται για την αντικατάσταση πραγματικών συστατικών, αλλά έχουν διαφορετικούς σκοπούς:

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

  • Mock — είναι ένα αντικείμενο που όχι μόνο μιμείται τη συμπεριφορά, αλλά και ελέγχει ότι οι μέθοδοι καλούνται με τα αναμενόμενα παραμέτρους και στη σωστή σειρά. Χρησιμοποιούνται για τον έλεγχο των αλληλεπιδράσεων.

Παράδειγμα:

  • Ένα stub μπορεί να επιστρέψει μια εικονική απάντηση από ένα αίτημα δικτύου.
  • Ένα mock θα ελέγξει ότι η μέθοδος αιτήματος καλείται ακριβώς μία φορά με μια συγκεκριμένη URL.

Στο iOS, για τη δημιουργία mocks και stubs, συχνά χρησιμοποιούνται frameworks όπως το OCMock ή το Cuckoo.