Avatar ·

الفرق بين @Mock و @InjectMocks في Mockito: متى وماذا نستخدم؟

مرحباً بالجميع! أنا مطور Java مبتدئ، أكتب اختبارات الوحدة باستخدام Mockito و Spring. لدي بعض الالتباس حول التعليقات التوضيحية @Mock و @InjectMocks. قرأت الوثائق لكنني لم أفهم تماماً الفرق بينهما ومتى يجب استخدام كل منهما.\n\nلنفترض أن لدي خدمة UserService تستخدم UserRepository و EmailService. أريد اختبار طريقة registerUser() في UserService، والتي تستدعي المستودع لحفظ المستخدم ثم ترسل بريداً إلكترونياً.\n\nهذا مثال على الكلاس الخاص بي:\n\n```java\npublic class UserService {\n private UserRepository userRepository;\n private EmailService emailService;\n\n public UserService(UserRepository userRepository, EmailService emailService) {\n this.userRepository = userRepository;\n this.emailService = emailService;\n```