Avatar ·

كيفية عمل mock للطرق من نوع void في Mockito بشكل صحيح؟

مرحبًا بالجميع! أنا مطور Java مبتدئ، وأكتب اختبارات الوحدة باستخدام Mockito. واجهت مشكلة: لا أستطيع فهم كيفية عمل mock لطريقة لا تُرجع شيئًا (void).

إليك مثال بسيط. هناك كلاس UserService يُرسل بريدًا إلكترونيًا عبر EmailService:

public class EmailService {
    public void sendEmail(String to, String subject, String body) {
        // إرسال البريد الإلكتروني الفعلي
        System.out.println("Email sent to " + to);
    }
}

public class UserService {
    private final EmailService emailService;
    
    public UserService(EmailService emailService) {
        this.emailService = emailService;
    }
    
    public void registerUser(String email) {
        // بعض منطق التسجيل
        emailService.sendEmail(email, "Welcome", "Hello!");
    }
}

أكتب اختبارًا لـ registerUser وأريد التحقق من أن sendEmail قد تم استدعاؤه.