Junior — Middle
Kādus rīkus un programmēšanas valodas izmantoja Mock testu izveidei?
sobes.tech AI
Atbilde no AI
Lai izveidotu Mock testus, bieži tiek izmanto specializētas bibliotēkas un rīkus, kas ļauj imitēt atkarību un ārējo pakalpojumu uzvedību. Atkarībā no programmēšanas valodas populārākās iespējas ir:
- JavaScript/TypeScript: Jest, Sinon.js — ļauj izveidot mock, stub un spy.
- Java: Mockito, EasyMock — plaši izmanto, lai izveidotu mock objektus.
- Python: unittest.mock, pytest-mock — iebūvētas un trešo pušu bibliotēkas mockēšanai.
- Go: gomock, testify/mock — rīki mocku ģenerēšanai un izmantošanai.
Piemērs Go ar testify/mock:
import (
"testing"
"github.com/stretchr/testify/mock"
)
// Interfeiss, kuru mockosim
type UserRepository interface {
GetUser(id int) (*User, error)
}
// Mock struktūra
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)
}
Šādā veidā izvēle ir atkarīga no izmantotās valodas un projekta prasībām.