Sobes.tech
Junior — Middle

Ինչպե՞ս եք փորձարկել տվյալների բազայի հետ փոխազդեցություն ունեցող կոդը։

sobes.tech AI

Պատասխան AI-ից

Go լեզվով տվյալների բազայի հետ փոխազդեցություն ունեցող կոդը փորձարկելու համար օգտագործվում են մի քանի մոտեցումներ՝

  • Տվյալների բազայի մոկավորում — ստեղծել ինտերֆեյսներ տվյալների բազայի հետ աշխատելու համար և փոխարինել իրական կանչերը մոկներով՝ տրամադրելով լոգիկայի փորձարկում առանց իրական տվյալների բազայի:
// Տվյալների բազայի հետ աշխատելու ինտերֆեյս
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Փորձարկումներում մոկ ստեղծել
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
    return &User{ID: id, Name: "Test"}, nil
}

Այս մոտեցումը թույլ է տալիս փորձարկել կոդը՝ առանց իրական տվյալների բազայի:

  • Տվյալների բազայի փորձարկումներ — օգտագործել առանձին փորձարկման տվյալների բազա կամ հիշողության մեջ գտնվող բազա (օրինակ՝ SQLite)՝ ինտեգրացիոն փորձարկումներ կատարելու համար:

  • Տրանսակցիաներ հետ վերականգնման — փորձարկումների ժամանակ բացել տրանսակցիա, կատարել գործողություններ և վերջում վերականգնել փոփոխությունները՝ չլեղտարելով փորձարկման միջավայրը։

// Տվյալների բազայի հետ աշխատելու ինտերֆեյս
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Փորձարկումներում մոկ ստեղծել
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
    return &User{ID: id, Name: "Test"}, nil
}