Go को टेस्ट पुनः चलाने और परिणाम कैशिंग अक्षम करने के लिए कैसे मजबूर करें?
सभी को नमस्ते! मैंने अभी Go सीखना शुरू किया है और टेस्ट लिखते समय एक बहुत अजीब समस्या का सामना किया। मेरे पास एक सरल पैकेज है जिसमें एक फंक्शन है जो वर्तमान समय लौटाता है। मैंने एक टेस्ट लिखा जो जाँचता है कि फंक्शन वर्तमान समय के करीब समय लौटाता है। यहाँ मेरा कोड है:
```go
// timeutils.go
package timeutils
import "time"
func GetCurrentTime() time.Time {
return time.Now()
}
```
```go
// timeutils_test.go
package timeutils
import (
"testing"
"time"
)
func TestGetCurrentTime(t *testing.T) {
now := time.Now()
result := GetCurrentTime()
diff := result.Sub(now)
if diff > time.Second || diff < -time.Second {
t.Errorf("GetCurrentTime() = %v, want time close to %v", result, now)
}
}
```
समस्या यह है कि जब मैं `go test` के साथ टेस्ट चलाता हूँ, तो वे केवल पहली बार सामान्य रूप से काम करते हैं। बाद के रन में Go बस `ok` कहता है और टेस्ट को दोबारा नहीं चलाता। मैं समझता हूँ कि यह कैशिंग के कारण है, लेकिन मुझे चाहिए