Sobes.tech
Middle+

Ինչպե՞ս փորձարկել printNumber ֆունկցիան առանց մեկ վայրկյան սպասելու։

sobes.tech AI

Պատասխան AI-ից

printNumber գործառույթը փորձարկելու համար, որը ներսում կանչում է time.Sleep(time.Second), առանց իրական սպասման մեկ վայրկյան, կարող եք օգտագործել կախվածության մուտքագրում քնի ֆունկցիայի համար: Փոխարենը, որ ուղղակի կանչեք time.Sleep կոդում, փոխանցեք քնի ֆունկցիան որպես պարամետր կամ օգտագործեք ինտերֆեյս:

Օրինակ՝

package main

import (
    "fmt"
    "time"
)

type Sleeper func(d time.Duration)

func printNumber(sleep Sleeper, n int) {
    sleep(time.Second) // փոխարենը ուղղակի `time.Sleep` կանչելու
    fmt.Println(n)
}

// Թեստում փոխանցեք փոխարինող:
func main() {
    fakeSleep := func(d time.Duration) {
        // ոչինչ չանել, որպեսզի չսպասենք
    }
    printNumber(fakeSleep, 42) // անմիջապես կտպի 42
}

Այս կերպ, թեստերում կարելի է իրական քնի ֆունկցիան փոխարինել դատարկ ֆունկցիայով, ինչը արագացնում է թեստավորումը և վերացնում ուշացումները։