انتقل إلى المحتوى
أمين أبوزيد
درس مخطط لهJNR-045-L03

اختبارات المستودعات باستخدام @DataJpaTest

  • الدرس 3 من 7
  • Junior
في هذا الدرس 4 موضوعات

هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.

نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.

في هذا الدرس

test custom queries against a real database quickly.

الموضوعات المخطط لها

  • @DataJpaTest loads only JPA parts (entities, repositories), not the whole app.
  • By default it replaces the datasource with an embedded database; add @AutoConfigureTestDatabase(replace = NONE) to keep your Testcontainers database.
  • Each test runs in a transaction that rolls back at the end.
  • Test every custom query: derived queries with tricky conditions, @Query, paging.
  • Flush and clear the persistence context if you want to see what the database really returns.
تفاصيل المخطط المبدئي

عرض عملي

java
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@Testcontainers
class ProductRepositoryTest {
    @Container @ServiceConnection static PostgreSQLContainer<?> db = new PostgreSQLContainer<>("postgres:16");
    @Autowired ProductRepository repo;
}

اختبر فهمك

Why add replace = NONE?

أظهر الإجابة

To stop Spring swapping in an embedded database.

التطبيق

طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.

المختبر والتمارين الاختبار

تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.

اكتب للبحث في المستويات والمراحل والوحدات والدروس.