Sobes.tech
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.