यूनिट-टेस्टिंग में Go फंक्शन्स के लिए मॉक (mock) सही तरीके से कैसे बनाएं?
नमस्ते! मैंने Go सीखना शुरू किया है और अपने प्रोजेक्ट के लिए यूनिट-टेस्ट लिखने की कोशिश कर रहा हूं। मुझे एक समस्या का सामना करना पड़ा: मेरे पास एक फंक्शन है जो बाहरी सर्विस को कॉल करता है (जैसे, ईमेल भेजना या HTTP-रिक्वेस्ट करना)। टेस्ट में मैं वास्तव में इन सर्विसेज को कॉल नहीं करना चाहता, इसलिए मॉक (mock) बनाने की जरूरत है।
यहां मेरे कोड का एक सरल उदाहरण है:
```go
package main
import (
"fmt"
"net/smtp"
)
type EmailSender struct{}
func (e *EmailSender) SendEmail(to, subject, body string) error {
// SMTP के माध्यम से वास्तविक ईमेल भेजना
err := smtp.SendMail("smtp.example.com:587", nil, "from@example.com", []string{to}, []byte(body))
if err != nil {
return fmt.Errorf("failed to send email: %w", err)
}
return nil
}
func NotifyUser(sender *EmailSender, userEmail string) e