Sobes.tech
Middle+

printNumber funksiyasını bir saniyə gözləmədən necə sınaqdan keçirmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

printNumber funksiyasını test etmək üçün, içərisində time.Sleep(time.Second) çağıran funksiyanı real gözləmədən test etmək üçün, yuxu funksiyası üçün asılılıq injeksiyasından istifadə edə bilərsiniz. Kodda birbaşa time.Sleep çağırışını yerinə yetirmək əvəzinə, yuxu funksiyasını parametr kimi ötürün və ya interfeys istifadə edin.

Nümunə:

package main

import (
    "fmt"
    "time"
)

type Sleeper func(d time.Duration)

func printNumber(sleep Sleeper, n int) {
    sleep(time.Second) // birbaşa time.Sleep yerinə
    fmt.Println(n)
}

// Testdə, yerinə keçən funksiyanı ötürürük:
func main() {
    fakeSleep := func(d time.Duration) {
        // heç nə etmir, gözləmək üçün
    }
    printNumber(fakeSleep, 42) // dərhal 42 göstərəcək
}

Bu yolla, testlərdə real yuxu funksiyası boş funksiyaya dəyişdirilə bilər, bu da testləri sürətləndirir və gecikmələri aradan qaldırır.