Middle+
Чӣ гуна функсияи printNumber-ро бидуни интизорӣ дар як сония санҷидан мумкин аст?
sobes.tech AI
Ҷавоб аз AI
Дараа нь printNumber функцыг туршихдаа, тэр дотор нь time.Sleep(time.Second) дуудахгүйгээр туршихын тулд, унтлагын функцийн хамаарлыг injection хийх боломжтой. Код дотор шууд 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 гарна
}
Ингэснээр, туршилтад бодит унтлагын функцыг хоосон функцээр сольж, туршилтыг хурдлуулах, хойшилтыг арилгах боломжтой.