Junior — Middle
Test sürecinde Mock nesnelerinin ana rolü ve kullanımı nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Mock nesneleri, test edilen modül ile etkileşime giren sistemin gerçek bileşenlerinin davranışını taklit etmek için testlerde kullanılır. Mock'un temel rolü, test edilen kodu dış bağımlılıklardan (örneğin, veritabanları, ağ servisleri) izole etmektir; böylece testler hızlı, güvenilir ve tekrarlanabilir olur.
Mock nesneler kullanmak şunlara olanak tanır:
- Bağımlılıklarla etkileşimleri doğrulama (örneğin, metod çağrıları, iletilen parametreler).
- Bağımlılıkların farklı çalışma senaryolarını simüle etme (başarı, hatalar, gecikmeler).
- Test ortamını yapılandırmayı basitleştirme.
Aşağıda, bir dış servisi çağıran fonksiyonun test edilmesi için arayüzler ve mocklar kullanan Go örneği bulunmaktadır:
package service
type ExternalAPI interface {
GetData(id string) (string, error)
}
func ProcessData(api ExternalAPI, id string) (string, error) {
data, err := api.GetData(id)
if err != nil {
return "", err
}
return "Processed: " + data, nil
}
// Testte, mock oluşturuyoruz:
type MockAPI struct {}
func (m *MockAPI) GetData(id string) (string, error) {
if id == "123" {
return "mocked data", nil
}
return "", fmt.Errorf("not found")
}
// Test
func TestProcessData(t *testing.T) {
mock := &MockAPI{}
result, err := ProcessData(mock, "123")
if err != nil || result != "Processed: mocked data" {
t.Errorf("beklenmeyen sonuç: %v, hata: %v", result, err)
}
}