Sobes.tech
Junior — Middle
94

Μπορείτε να εξηγήσετε την έννοια του mocking στον έλεγχο λογισμικού;

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

sobes.tech AI

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

Οι κύριοι στόχοι του mocking:

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

Στην Python, για mocking, συχνά χρησιμοποιείται η βιβλιοθήκη unittest.mock:

from unittest.mock import Mock

def fetch_data(api_client):
    response = api_client.get('/data')
    return response.json()

# Στη δοκιμή
mock_api = Mock()
mock_api.get.return_value.json.return_value = {'key': 'value'}

Αποτέλεσμα = fetch_data(mock_api)
assert Αποτέλεσμα == {'key': 'value'}