Middle+
printNumber fonksiyonunu bir saniye beklemeden nasıl test edersiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
printNumber fonksiyonunu test etmek için, içinde time.Sleep(time.Second) çağıran fonksiyonu gerçek zaman beklemeden test etmek amacıyla, uyku fonksiyonu için bağımlılık enjeksiyonu kullanılabilir. Koddaki doğrudan time.Sleep çağrısı yerine, uyku fonksiyonunu parametre olarak geçin veya bir arayüz kullanın.
Örnek:
package main
import (
"fmt"
"time"
)
type Sleeper func(d time.Duration)
func printNumber(sleep Sleeper, n int) {
sleep(time.Second) // doğrudan time.Sleep yerine
fmt.Println(n)
}
// Testte, yerine sahte bir fonksiyon geçilir:
func main() {
fakeSleep := func(d time.Duration) {
// hiçbir şey yapma, bekleme
}
printNumber(fakeSleep, 42) // hemen 42'yi yazdırır
}
Bu sayede, testlerde gerçek uyku fonksiyonu boş bir fonksiyonla değiştirilebilir, bu da testi hızlandırır ve gecikmeleri ortadan kaldırır.