Sobes.tech
Junior — Middle

Ποια εργαλεία και γλώσσες προγραμματισμού χρησιμοποιήθηκαν για τη δημιουργία των Mock tests;

sobes.tech AI

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

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

  • JavaScript/TypeScript: Jest, Sinon.js — επιτρέπουν τη δημιουργία mocks, stubs και spies.
  • Java: Mockito, EasyMock — ευρέως χρησιμοποιούνται για τη δημιουργία mock αντικειμένων.
  • Python: unittest.mock, pytest-mock — ενσωματωμένες και τρίτες βιβλιοθήκες για mocking.
  • Go: gomock, testify/mock — εργαλεία για τη δημιουργία και χρήση mocks.

Παράδειγμα σε Go με testify/mock:

import (
    "testing"
    "github.com/stretchr/testify/mock"
)

// Διεπαφή που θα μιμηθούμε
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Mock δομή
type MockUserRepository struct {
    mock.Mock
}

func (m *MockUserRepository) GetUser(id int) (*User, error) {
    args := m.Called(id)
    return args.Get(0).(*User), args.Error(1)
}

func TestGetUser(t *testing.T) {
    mockRepo := new(MockUserRepository)
    mockUser := &User{ID: 1, Name: "John"}

    mockRepo.On("GetUser", 1).Return(mockUser, nil)

    user, err := mockRepo.GetUser(1)
    if err != nil || user.Name != "John" {
        t.Fail()
    }

    mockRepo.AssertExpectations(t)
}

Έτσι, η επιλογή των εργαλείων εξαρτάται από τη γλώσσα που χρησιμοποιείται και τις απαιτήσεις του έργου.