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'}