Middle+
printNumber funktsiyasini bir soniya kutmay without qanday sinab ko'rish mumkin?
sobes.tech AI
AIdan javob
printNumber funksiyasını test qilish uchun, ichida time.Sleep(time.Second) chaqiradigan funksiyani haqiqiy kutishsiz sinash uchun, uyqu funksiyasi uchun bog'liqlikni in'ektsiya qilish mumkin. Kodda to'g'ridan-to'g'ri time.Sleep chaqirmasdan, uyqu funksiyasini parametr sifatida yuboring yoki interfeysdan foydalaning.
Misol:
package main
import (
"fmt"
"time"
)
type Sleeper func(d time.Duration)
func printNumber(sleep Sleeper, n int) {
sleep(time.Second) // to'g'ridan-to'g'ri time.Sleep o'rniga
fmt.Println(n)
}
// Testda, o'rnini bosuvchi funksiyani yuboring:
func main() {
fakeSleep := func(d time.Duration) {
// hech nima qilmaymiz, kutmaymiz
}
printNumber(fakeSleep, 42) // darhol 42 ni chiqaradi
}
Shu tarzda, testlarda haqiqiy uyqu funksiyasini bo'sh funksiyaga almashtirish mumkin, bu esa testlarni tezlashtiradi va kechikishlarni olib tashlaydi.