آموزش تست برنامه Spring Boot با JUnit، Mockito و Testcontainers

Testing Spring Boot App with JUnit, Mockito & Testcontainers

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: نوشتن تست‌های واحد و تست‌های یکپارچه‌سازی برای برنامه Spring Boot و App Spring WebFlux با استفاده از JUnit، Mockito و Testcontainers نوشتن تست‌های استاندارد صنعتی واحد و یکپارچه‌سازی در سبک BDD (Behaviour Driven Development) با استفاده از وابستگی به تست Spring Boot Starter از ابتدا یاد بگیرید چگونه از آن استفاده کنید. فرمت BDD (Behaviour Driven Development) که برای نوشتن تست‌های واحد داده می‌شود. Learn to Unit test برنامه Spring boot لایه مخزن Learn to Unit test Spring برنامه کاربردی لایه سرویس آموزش واحد تست Spring application boot layer Controller - Unit test REST API's آموزش انجام تست ادغام برای برنامه Spring boot شما یاد خواهید گرفت که بیشترین استفاده را داشته باشید. یادداشت‌های مهم تست واحد - @SpringBootTest، @WebMvcTest، @DataJpaTest، و @MockBean از همه چارچوب‌ها در تست شروع بوت بهار استفاده کنید - JUnit، Spring Test، Spring Boot Test، AssertJ، Hamcrest، Mockito، JSONassert و JsonPath. شما یاد خواهید گرفت که تست های واحد را با استفاده از Mocks و Stubs ایجاد شده با Mockito بنویسید یاد بگیرید چگونه از حاشیه نویسی Mockito برای ایجاد اشیاء ساختگی استفاده کنید. آموزش نوشتن تست های یکپارچه سازی با استفاده از پایگاه داده MySQL شما یاد خواهید گرفت که تست های یکپارچه سازی مستقل را برای سرویس های وب RESTFUL بنویسید که با لایه های چندگانه - کنترل کننده، سرویس و لایه های مخزن صحبت می کنند. آموزش نوشتن تست های ادغام با استفاده از Testcontainers آموزش ساخت API های Reactive CRUD REST با استفاده از Spring WebFlux و MongoDB Learn Unit Testing API های Reactive CRUD REST با استفاده از JUnit و Mockito Learn Integration Testing API های Reactive CRUD REST با استفاده از WebTestClient پیشها:Javanito programming Good to know اصول اولیه خوب است مبانی Spring Boot را بدانید درک اولیه استفاده از IntelliJ IDEA

در این دوره آموزشی، نحوه نوشتن تست‌های واحد و تست‌های یکپارچه‌سازی به سبک BDD برای برنامه‌های Spring Boot و همچنین برنامه‌های Spring WebFlux با استفاده از چارچوب‌های JUnit 5، Mockito، AssertJ، Hamcrest، JsonPath و Testcontainers را خواهید آموخت.


نکته مهم: این دوره برای استفاده از Spring Boot 3 به روز شد.


کد را همراه با من در ویدیوها تایپ کنید. اگر با من همراه باشید، این تجربه یادگیری شما را افزایش می دهد.


کد منبع و فایل‌های PDF (یادداشت‌های کلاس) برای دانلود در دسترس هستند.


نمای کلی بوت بهار

Spring Boot یک چارچوب نظری است که به توسعه‌دهندگان کمک می‌کند تا برنامه‌های مبتنی بر Spring را سریع و آسان بسازند.

هدف اصلی Spring Boot ایجاد سریع برنامه‌های مبتنی بر Spring بدون نیاز به برنامه‌نویسان برای نوشتن پیکربندی دیگ بخار بارها و بارها است.

Spring Boot یک چارچوب بسیار محبوب برای توسعه خدمات وب و میکروسرویس REST است.


نمای کلی Spring WebFlux

Spring 5 شامل Spring WebFlux است که از برنامه نویسی واکنشی برای برنامه های کاربردی وب پشتیبانی می کند.

Spring WebFlux به صورت داخلی از Project Reactor و اجراهای ناشر آن، Flux و Mono استفاده می کند.

چارچوب جدید از دو مدل برنامه نویسی پشتیبانی می کند:

  • مولفه های واکنشی مبتنی بر حاشیه نویسی

  • مسیریابی و مدیریت عملکردی

در این دوره، ما بر روی ساخت API های واکنشی REST با استفاده از مؤلفه های واکنشی مبتنی بر حاشیه نویسی تمرکز خواهیم کرد.


چه چیزی یاد خواهید گرفت؟

  • با استفاده از وابستگی تست راه‌اندازی فنری از ابتدا یاد بگیرید که تست‌های واحد و ادغام استاندارد صنعتی را در سبک BDD (توسعه محور رفتار) بنویسید

  • با نحوه استفاده از قالب BDD (Behavior Driven Development) که برای نوشتن تست‌های واحد داده می‌شود/when/then استفاده کنید.

  • آزمون واحد لایه مخزن برنامه بوت Spring

    را بیاموزید
  • آزمون واحد لایه سرویس برنامه بوت Spring

    را بیاموزید
  • آزمون واحد لایه کنترلر برنامه بوت Spring

    را بیاموزید
  • با نحوه انجام تست ادغام برای برنامه بوت Spring آشنا شوید.

  • با نحوه انجام تست یکپارچه سازی با استفاده از Testcontainers//بسیار مهم

    آشنا شوید
  • می‌آموزید که از مهم‌ترین شرح‌های تست واحد استفاده کنید - @SpringBootTest، @WebMvcTest، @DataJpaTest، و @MockBean

  • از همه چارچوب‌ها در تست راه‌اندازی بهار استفاده کنید - JUnit، Spring Test، Spring Boot Test، AssertJ، Hamcrest، Mockito، JSONassert، و JsonPath.

  • با استفاده از Mocks و Stubs ایجاد شده با Mockito می‌توانید تست‌های واحد بنویسید

  • با نحوه استفاده از حاشیه نویسی Mockito برای ایجاد اشیاء ساختگی آشنا شوید.

  • با استفاده از پایگاه داده MySQL نوشتن تست های یکپارچه سازی را بیاموزید.

  • با صحبت کردن با چند لایه - لایه‌های کنترل‌کننده، سرویس، و مخزن، نوشتن تست‌های یکپارچه‌سازی مستقل برای سرویس‌های وب RESTFUL را یاد خواهید گرفت.

  • آموزش ساخت APIهای Reactive CRUD REST با استفاده از Spring WebFlux

  • آزمایش واحدهای APIهای Reactive CRUD REST را بیاموزید

  • آزمایش یکپارچه سازی Reactive CRUD REST APIs

ابزارها و فناوری های مورد استفاده در این دوره:

فن آوری ها و کتابخانه ها:

  1. جاوا 11+

  2. Spring Boot

  3. MVC بهار

  4. Spring Data JPA ( Hibernate)

  5. چارچوب JUnit 5

  6. Mockito 4 (جدیدترین)

  7. چارچوب Hamcrest

  8. کتابخانه AssertJ

  9. کتابخانه JsonPath

  10. Spring WebFlux

  11. MongoDB

IDE:

  • IntelliJ IDEA

پایگاه داده:

  • پایگاه داده در حافظه H2 (برای آزمایش لایه مخزن)

  • پایگاه داده MySQL (برای آزمایش یکپارچه سازی)

  • پایگاه داده MongoDB (برای آزمایش یکپارچه سازی)


نظرات شگفت انگیز دانشجویان در مورد این دوره:

"رامش معلم بزرگی است، او توضیحات بسیار تمیزی در مورد مفاهیم پیچیده ارائه می دهد."


"رامش چیزها را به خوبی توضیح می دهد! دستورالعمل های او به راحتی قابل پیگیری و درک است. دوره بسیار مفید است"


"✔ دوره به خوبی ساختار یافته که تمام لایه های آزمایش را پوشش می دهد

✔ هر روش را با توضیح "راست به نقطه"

اجرا کنید

✔ معرفی خوب TestContainers

✔ کدنویسی در

آسان است

✔ پاسخ های سریع از مربی

به دنبال دوره های غواصی عمیق تر مانند ابزارهای Maven، Gradle، DevOps مورد استفاده در تولید هستید"


"دوره عالی.

تمام اصول اولیه مورد نیاز برای آزمایش یک برنامه فنری مورد بحث قرار گرفته است و موارد دیگر.

دقیقاً همان چیزی است که من نیاز داشتم و جایی پیدا نکردم.

رامش یک مربی عالی است.

ممنون آقا!"


"یک دوره بسیار خوب که با مثال های عالی توضیح داده شده است.

چیزهای زیادی برای یادگیری از این دوره، هر لایه از یک برنامه معمولی Spring Boot را پوشش می دهد."


"من واقعا از مربی رامش که این دوره شگفت انگیز را ارائه کرد،

قدردانی می کنم

محتوای این دوره و توضیحات عالی است."


"آقا فوق العاده، روشی را که توضیح می دهید دوست داشتم. و من بسیار خوش شانس هستم که این دوره را در زمان مناسب پیدا کردم."


"من شخصاً تحت تأثیر این دوره هستم، اگر تجربه قبلی از تست واحد ندارید، مطمئن هستم که پس از گذراندن این دوره، اعتماد به نفس بیشتری خواهید داشت و خوشحال می شوم اگر مدرس بتواند برخی از آموزش ها را نیز ارائه دهد. آموزش های مربوط به Microservices و رویکرد TDD. با تشکر و آرزوی موفقیت برای شما."


"اگرچه به عنوان یک فرد با تجربه، این دوره بسیار مفید بود."


"دوره فوق العاده است و تمام نیازهای من برای ایجاد تست هایم را پوشش می دهد.

من واقعاً آن را توصیه می کنم."


"دوره عالی. این دومین دوره ای است که از رامش می گذرانم. تا اینجا جالب است."


"دوره فوق العاده است و آن را به شدت توصیه می کنم."


"این دوره برای من مناسب است. به خصوص به این دلیل که جدید و به روز است."


"معلم عالی و دوره عالی"


"بله این مسابقه خوبی برای من است و خوشحالم که برای این ثبت نام کردم. من شخصا تدریس ramesh.fadatare را ترجیح می دهم. شروع به تماشای ویدیوهای او از یوتیوب کردم و همچنین نظرات او را به چند مشکل در سرریز پشته پرداختم. فکر کردم خوب است اگر بتوانم همه ویدیوهای او را یکجا مرور کنم."


"این چیزی است که آنها از شما می خواهند که در یک کار واقعی انجام دهید... لطفا دوره های بیشتری را ramesh انجام دهید.. مثل همیشه شگفت انگیز"


سرفصل ها و درس ها

معرفی Introduction

  • نمای کلی دوره و نقشه راه Course overview and roadmap

  • بهترین راه برای شرکت در این دوره و نحوه دریافت کمک Best Way to Take This Course and How to Get Help

  • تست واحد و تست یکپارچه سازی چیست؟ What is Unit testing and Integration testing?

  • بهترین روش ها برای تست واحد در جاوا Best practices for Unit testing in Java

  • کد منبع را دانلود کنید Download Source Code

  • دانلود تمام نکات مهم سخنرانی به صورت PDF Download All the Important Lecture Notes in PDF

  • این دوره به Spring Boot 3 منتقل شد This Course Migrated to Spring Boot 3

راه اندازی پروژه بوت بهار Spring Boot Project Setup

  • پروژه Spring Boot را در IntelliJ IDEA ایجاد و راه اندازی کنید Create and Set up Spring Boot Project in IntelliJ IDEA

  • درک وابستگی تست استارت بوت بهار Understanding Spring boot starter test dependency

  • نهاد JPA ایجاد کنید Create JPA Entity

  • مخزن Spring Data JPA را ایجاد کنید Create Spring Data JPA repository

بوت بهار - لایه مخزن تست واحد Spring Boot - Unit Testing Repository Layer

  • نمای کلی آزمایش واحد لایه مخزن Repository layer Unit testing overview

  • حاشیه نویسی بهار بوت @DataJpaTest Spring Boot @DataJpaTest annotation

  • تست واحد برای صرفه جویی در عملیات کارکنان Unit test for save employee operation

  • تست واحد برای عملیات تمام کارکنان Unit test for get all employees operation

  • تست واحد برای دریافت کارمند توسط عملیات شناسه Unit test for get employee by id operation

  • تست واحد برای عملیات دریافت کارمند از طریق ایمیل (روش جستجوی JPA داده بهار) Unit test for get employee by email operation (Spring Data JPA query method)

  • تست واحد برای به روز رسانی عملیات کارکنان Unit test for update employee operation

  • تست واحد برای حذف عملیات کارمند Unit test for delete employee operation

  • روش پرس و جو سفارشی Spring Data JPA با استفاده از JPQL با پارامترهای شاخص Unit test Spring Data JPA custom query method using JPQL with index parameters

  • روش پرس و جو سفارشی Spring Data JPA با استفاده از JPQL با پارامترهای نامگذاری شده تست واحد Unit test Spring Data JPA custom query method using JPQL with named parameters

  • واحد تست Spring Data JPA پرس و جوی بومی سفارشی با پارامترهای شاخص Unit test Spring Data JPA custom native query with index parameters

  • واحد تست Spring Data JPA Query Native سفارشی با پارامترهای Named Unit test Spring Data JPA custom Native query with Named parameters

  • Refactoring تست های JUnit برای استفاده از حاشیه نویسی @BeforeEach Refactoring JUnit tests to use @BeforeEach annotation

  • کد منبع این بخش را دانلود کنید Download source code of this section

بوت فنری - لایه سرویس تست واحد Spring Boot - Unit Testing Service Layer

  • نمای کلی تست واحد لایه سرویس Service Layer unit testing overview

  • EmployeeService را با متد saveEmployee ایجاد کنید Create EmployeeService with saveEmployee method

  • خلاصه سریع اصول Mockito (قبل از نوشتن تست های JUnit برای استفاده از اشیاء Mock) Quick Recap of Mockito basics (before writing JUnit tests to use Mock objects)

  • تست واحد برای روش EmployeeService saveEmployee Unit test for EmployeeService saveEmployee method

  • استفاده از حاشیه نویسی @Mock و @InjectMocks برای تمسخر شی Using @Mock and @InjectMocks annotations to mock the object

  • تست واحد برای متد saveEmployee که Exception را می اندازد Unit test for saveEmployee method which throws Exception

  • تست واحد برای روش EmployeeService getAllEmployees - سناریوی مثبت Unit test for EmployeeService getAllEmployees method - Positive Scenario

  • تست واحد برای روش EmployeeService getAllEmployees - سناریو منفی Unit test for EmployeeService getAllEmployees method - Negative Scenario

  • تست واحد برای متد EmployeeService getEmployeeById Unit test for EmployeeService getEmployeeById method

  • تست واحد برای روش EmployeeService updateEmployee Unit test for EmployeeService updateEmployee method

  • تست واحد برای روش EmployeeService deleteEmployee Unit test for EmployeeService deleteEmployee method

  • کد منبع این بخش را دانلود کنید Download source code of this section

Spring Boot - Unit Test Controller Layer (Unit Test REST APIs) Spring Boot - Unit Test Controller Layer (Unit Test REST APIs)

  • نمای کلی تست واحد لایه کنترلر Controller Layer unit testing overview

  • مروری بر حاشیه نویسی @WebMvcTest Overview of @WebMvcTest annotation

  • @WebMvcTest VS @SpringBootTest @WebMvcTest VS @SpringBootTest

  • ایجاد CreEEmployee REST API Build createEmployee REST API

  • واحد تست CreateEmployee REST API Unit test createEmployee REST API

  • GetAllEmployees REST API را بسازید Build GetAllEmployees REST API

  • واحد تست GetAllEmployees REST API Unit test GetAllEmployees REST API

  • Refactoring تست JUnit برای استفاده از واردات استاتیک Refactoring JUnit test to use static imports

  • getEmployeeById REST API را بسازید Build getEmployeeById REST API

  • واحد تست getEmployeeById REST API - سناریوی مثبت Unit test getEmployeeById REST API - Positive Scenario

  • واحد تست getEmployeeById REST API - سناریوی منفی Unit test getEmployeeById REST API - Negative Scenario

  • به روز رسانی Employee REST API را بسازید Build updateEmployee REST API

  • به روز رسانی آزمون واحد Employee REST API - سناریو مثبت Unit test updateEmployee REST API - Positive Scenario

  • به روز رسانی تست واحد Employee REST API - سناریو منفی Unit test updateEmployee REST API - Negative Scenario

  • DeleteEmployee REST API را بسازید Build deleteEmployee REST API

  • Unit test deleteEmployee REST API Unit test deleteEmployee REST API

  • کد منبع این بخش را دانلود کنید Download source code of this section

Spring Boot - تست یکپارچه سازی با استفاده از پایگاه داده محلی MySQL Spring Boot - Integration Testing using Local MySQL Database

  • بررسی اجمالی تست یکپارچه سازی Integration testing overview

  • نمای کلی حاشیه نویسی @SpringBootTest @SpringBootTest annotation overview

  • پایگاه داده MySQL را برای تست یکپارچه سازی پیکربندی کنید Configure MySQL database for integration testing

  • یک پایه برای تست ادغام ایجاد کنید Create a base for Integration testing

  • تست یکپارچه سازی برای ایجاد کارمند REST API Integration test for create employee REST API

  • تست ادغام برای دریافت همه کارکنان REST API Integration test for get all employees REST API

  • تست ادغام برای دریافت کارمند توسط id REST API - سناریوهای مثبت و منفی Integration test for get employee by id REST API - Positive & Negative Scenarios

  • تست یکپارچه سازی برای به روز رسانی کارمند REST API - سناریوهای مثبت و منفی Integration test for update employee REST API - Positive & Negative Scenarios

  • تست یکپارچه سازی برای حذف کارمند REST API Integration test for delete employee REST API

  • تست یکپارچه سازی EmployeeRepository با استفاده از پایگاه داده MySQL Integration testing EmployeeRepository using MySQL database

  • کد منبع این بخش را دانلود کنید Download source code of this section

Spring Boot - تست یکپارچه سازی با استفاده از Testcontainers Spring Boot - Integration Testing using Testcontainers

  • Testcontainers چه مشکلی را حل می کند What problem does Testcontainers solve

  • بررسی اجمالی کانتینرهای آزمایشی Testcontainers overview

  • افزودن کانتینرهای آزمایشی Adding Testcontainers

  • تست یکپارچه سازی EmployeeController با استفاده از Testcontainers Integration Testing EmployeeController using Testcontainers

  • با استفاده از @DynamicPropertySource Using @DynamicPropertySource

  • الگوی ظروف تک تن Singleton containers pattern

  • تست یکپارچه سازی EmployeeRepository با استفاده از Testcontainers Integration Testing EmployeeRepository using Testcontainers

  • کد منبع این بخش را دانلود کنید Download source code of this section

تکالیف و راه حل ها Assignments and Solutions

  • تکالیف برای شما Assignments for You

  • راه حل برای همه تکالیف در یک ویدیو Solution for All the Assignments in One Video

امتحان - خودتان را امتحان کنید Quiz - Test Yourself

  • امتحانی برای تست دانش در مورد این دوره Quiz to Test Knowledge About This Course

Spring WebFlux - ساخت API های واکنش پذیر CRUD REST Spring WebFlux - Build Reactive CRUD REST APIs

  • نمای کلی بخش Section Overview

  • MongoDB را در Docker Container مستقر کنید Deploy MongoDB in Docker Container

  • پروژه Spring Boot را در IntelliJ IDE ایجاد و راه اندازی کنید Create and Set up Spring Boot Project in IntelliJ IDE

  • ایجاد نهاد کارمند Create Employee Entity

  • ایجاد EmployeeRepository و درک اطلاعات داخلی Create EmployeeRepository and Understanding Internals

  • EmployeeDto و EmployeeMapper را ایجاد کنید Create EmployeeDto and EmployeeMapper

  • ایجاد Reactive Add Employee REST API Build Reactive Add Employee REST API

  • Build Reactive Get Employee REST API Build Reactive Get Employee REST API

  • Build Reactive Get All Employees REST API Build Reactive Get All Employees REST API

  • ایجاد Reactive Update Employee REST API Build Reactive Update Employee REST API

  • ایجاد Reactive Delete Employee REST API Build Reactive Delete Employee REST API

  • کد منبع این بخش را دانلود کنید Download source code of this section

Spring WebFlux - واحد تست API های واکنش پذیر CRUD REST Spring WebFlux - Unit Testing Reactive CRUD REST APIs

  • مروری بر تست CRUD Reactive REST API با استفاده از WebFlux Overview of Testing CRUD Reactive REST APIs using WebFlux

  • Unit Test Add Employee REST API Unit Test Add Employee REST API

  • Unit Test Get Employee REST API Unit Test Get Employee REST API

  • Unit Test Get All Employees REST API Unit Test Get All Employees REST API

  • Unit Test Update Employee REST API Unit Test Update Employee REST API

  • Unit Test Delete Employee REST API Unit Test Delete Employee REST API

  • کد منبع این بخش را دانلود کنید Download source code of this section

Spring WebFlux - تست یکپارچه سازی Reactive CRUD REST APIs Spring WebFlux - Integration Testing Reactive CRUD REST APIs

  • تست یکپارچه سازی برای Add Employee REST API Integration Test for Add Employee REST API

  • تست یکپارچه سازی برای Get Employee REST API Integration Test for Get Employee REST API

  • تست یکپارچه سازی برای Get All Employees REST API Integration Test for Get All Employees REST API

  • کد Refactor Refactor Code

  • تست ادغام برای به‌روزرسانی API REST کارمند Integration Test for Update Employee REST API

  • تست یکپارچه سازی برای حذف API REST کارمند Integration Test for Delete Employee REST API

  • کد منبع این بخش را دانلود کنید Download source code of this section

  • کد منبع این بخش را دانلود کنید Download source code of this section

بعد چه می شود؟ What's Next?

  • تخفیف برای دوره های دیگر Udemy من Discounts for My Other Udemy Courses

  • با تشکر از شما یادداشت و بازخورد در مورد این دوره Thank You Note and Feedback About This Course

نمایش نظرات

نظری ارسال نشده است.

آموزش تست برنامه Spring Boot با JUnit، Mockito و Testcontainers
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
11 hours
103
Udemy (یودمی) udemy-small
24 اسفند 1401 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
5,571
4.5 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Ramesh Fadatare (Java Guides) Ramesh Fadatare (Java Guides)

مهندس نرم افزار، دارای گواهی بهار، یوتیوبر و مدرس

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.