Middle
Testdə mock-obyekt (sınaq obyekti) nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Testlərdə mock-obyekt (süni obyekt) sistemin real komponent və ya modulunun davranışını təqlid edən xüsusi bir obyektdir. Bu, test olunan kodu xarici asılılıqlardan ayırmaq və real xidmətlər və ya resursların təsirindən asılı olmadan logikanı yoxlamaq üçün istifadə olunur.
Məsələn, verilənlər bazasına müraciət edən funksiyanız varsa, testlərdə real əlaqə yerinə əvvəlcədən təyin olunmuş məlumatlar qaytaran mock-obyekt istifadə edə bilərsiniz. Bu, testləri sürətləndirir və daha etibarlı edir.
Go dilində interfeys və mock nümunəsi:
// Verilənlər bazası ilə işləmək üçün interfeys
type UserRepository interface {
GetUser(id int) (*User, error)
}
// Mock-implementasiya
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
return &User{ID: id, Name: "Test User"}, nil
}
// Testdə
func TestGetUserName(t *testing.T) {
repo := &MockUserRepo{}
user, err := repo.GetUser(1)
if err != nil {
t.Fatal(err)
}
if user.Name != "Test User" {
t.Errorf("gözlənilən Test User, alınan %s", user.Name)
}
}
Beləliklə, mock obyektlər test üçün idarə olunan mühit yaratmağa və logikadakı səhvləri xarici sistemlərdən asılı olmadan aşkar etməyə kömək edir.