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
}
Այս կերպ, թեստերում կարելի է իրական քնի ֆունկցիան փոխարինել դատարկ ֆունկցիայով, ինչը արագացնում է թեստավորումը և վերացնում ուշացումները։