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.