SlideShare a Scribd company logo
S U R I N D E R
2 2 N D F E B R U A R Y , 2 0 1 9
JUnit 5
Disclaimer : Only for learning and knowledge sharing purposes
Agenda
• Motivation for Junit 5
• Architecture of Junit 5
• Features
• Demo
• Questions
Motivation
• Modularity-> Big ball of mud(A Junit.jar)
• Test discovery and execution are tightly coupled
• Extensibility-> lot of room for improvement
• Java 8 and beyond?
• Not Composable
• Parameterized and SpringRunner together ? No way
How it started
• Junit lambda- Crowdfunding Campaign
• Initiated by Johannes Link and Marc Phillip
• Ran from July to October 2015
• Raised 53,937 Euros from 474 individuals and companies
• 4 companies donated 6 weeks of developer time.
• Created from scratch using java 8
Junit 5 in a Nutshell
• Modular
• Extensible
• Modern
• Backward compatible
Junit 5 Architecture
Junit 5 Architecture cont…
Junit Jupiter
• Programming model
• How you write tests
• Test API
• Annotations
• Assertions
• Assumptions
• Type of tests
• Extension Model
Register extensions
What does JUnit Jupiter need
• Java 1.8: to use lambdas and streams
• Spring 5: to use SpringExtensions
Dependencies
JUnit 5 Features
Junit 5 Features
• Annotations, Assertions
• Exceptions
• DisplayName for tests
• Timeouts on APIs
• Ordering tests
• Conditional Disabling the tests
• Tagging and Filtering
• Nested Tests
• Dependency Injection to test methods
• Repeated Tests
• Parameterized Tests
• Extensions
• Dynamic Tests
Basic APIs
Assert exceptions on actual API
Junit 4:
Junit 5:
Assert timeouts on actual API
Junit 4:
Junit 5:
Disable Tests on Condition
Test Display names of your choice
Run Test cases in sequence
• Run tests scenarios in order
• Add @TestMethodOrder on test class
• Add Order(sequence number ) on test methods
Nested Tests
• Best suited when a file has large no of test cases
• Manage related test scenarios under common heading
• Test case is more readable
• e.g. Logical grouping of test cases for Stack operations
Repeated Tests
• Run same test multiple times as desired
• Run lifecycle callback methods just like usual test case
• Access to current and total repetitions
Parameterized Tests
• Run a test on different inputs
• Provide various input data providers
• Value Source, Method Source, CsvSource to name a few
JUnit Jupiter – Extension model
• Extension
• Marker interface
• Org.junit.Jupiter.api.extension
• Package containing all extension APIs
• Implement as many you like
• @ExtedWith(…)
• Used to register one or more extensions
• Meta annotations
Execution Mode
• Same thread, Concurrent
• Enable disable Parallelism
• Can define parallelism strategy: fixed or dynamic
• No of threads configuration based on CPU cores
• Enable above properties from file
Where can I find the source code ?
• Source code GitHub repo:
• https://github.com/Rednirus/JUnit5
• Source code for snapshots presented in the slides
• Some additional features not covered in slides
• Repository is public
• Feedback and suggestions ? Inbox me on LinkedIn:
• https://www.linkedin.com/in/surinderkmehra/
References
• https://junit.org/junit5/docs/current/user-guide/
• https://www.youtube.com/watch?v=K7g2HUhWbNE
• https://www.youtube.com/watch?v=0qI6_NKFQsY
• https://www.linkedin.com/learning/learning-junit-5
• https://junit.org/junit5/docs/5.0.1/api/overview-summary.html
Questions
JUnit 5 Slides: Next generation Framework for Testing

More Related Content

Similar to JUnit 5 Slides: Next generation Framework for Testing

An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and MockitoAn Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
shaunthomas999
 
JUnit 5 - New Opportunities for Testing on the JVM
JUnit 5 - New Opportunities for Testing on the JVMJUnit 5 - New Opportunities for Testing on the JVM
JUnit 5 - New Opportunities for Testing on the JVM
Sam Brannen
 
Test Automation using UiPath Test Suite - Developer Circle Part-3 - 07262022.pdf
Test Automation using UiPath Test Suite - Developer Circle Part-3 - 07262022.pdfTest Automation using UiPath Test Suite - Developer Circle Part-3 - 07262022.pdf
Test Automation using UiPath Test Suite - Developer Circle Part-3 - 07262022.pdf
Diana Gray, MBA
 
JUnit 5 — New Opportunities for Testing on the JVM
JUnit 5 — New Opportunities for Testing on the JVMJUnit 5 — New Opportunities for Testing on the JVM
JUnit 5 — New Opportunities for Testing on the JVM
VMware Tanzu
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
QA or the Highway
 
Modern Module Development
Modern Module DevelopmentModern Module Development
Modern Module Development
_morgan
 
Junit5 brujug
Junit5 brujugJunit5 brujug
Junit5 brujug
Tim Schmitte
 
Effective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperEffective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and Dapper
Mike Melusky
 
Renaissance of JUnit - Introduction to JUnit 5
Renaissance of JUnit - Introduction to JUnit 5Renaissance of JUnit - Introduction to JUnit 5
Renaissance of JUnit - Introduction to JUnit 5
Jimmy Lu
 
CPAN Curation
CPAN CurationCPAN Curation
CPAN Curation
neilbowers
 
JUnit 5 Alpha
JUnit 5 AlphaJUnit 5 Alpha
JUnit 5 Alpha
Jaran Flaath
 
Apereo OAE - Bootcamp
Apereo OAE - BootcampApereo OAE - Bootcamp
Apereo OAE - Bootcamp
Nicolaas Matthijs
 
Effective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperEffective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and Dapper
Mike Melusky
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projects
Vincent Massol
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven Development
Sarah Dutkiewicz
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system developmentcymark09
 
Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...
Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...
Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...
Lucidworks
 
Lucene Bootcamp - 2
Lucene Bootcamp - 2Lucene Bootcamp - 2
Lucene Bootcamp - 2GokulD
 
Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019
Vincent Massol
 
Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014Damian Beresford
 

Similar to JUnit 5 Slides: Next generation Framework for Testing (20)

An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and MockitoAn Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
 
JUnit 5 - New Opportunities for Testing on the JVM
JUnit 5 - New Opportunities for Testing on the JVMJUnit 5 - New Opportunities for Testing on the JVM
JUnit 5 - New Opportunities for Testing on the JVM
 
Test Automation using UiPath Test Suite - Developer Circle Part-3 - 07262022.pdf
Test Automation using UiPath Test Suite - Developer Circle Part-3 - 07262022.pdfTest Automation using UiPath Test Suite - Developer Circle Part-3 - 07262022.pdf
Test Automation using UiPath Test Suite - Developer Circle Part-3 - 07262022.pdf
 
JUnit 5 — New Opportunities for Testing on the JVM
JUnit 5 — New Opportunities for Testing on the JVMJUnit 5 — New Opportunities for Testing on the JVM
JUnit 5 — New Opportunities for Testing on the JVM
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
 
Modern Module Development
Modern Module DevelopmentModern Module Development
Modern Module Development
 
Junit5 brujug
Junit5 brujugJunit5 brujug
Junit5 brujug
 
Effective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperEffective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and Dapper
 
Renaissance of JUnit - Introduction to JUnit 5
Renaissance of JUnit - Introduction to JUnit 5Renaissance of JUnit - Introduction to JUnit 5
Renaissance of JUnit - Introduction to JUnit 5
 
CPAN Curation
CPAN CurationCPAN Curation
CPAN Curation
 
JUnit 5 Alpha
JUnit 5 AlphaJUnit 5 Alpha
JUnit 5 Alpha
 
Apereo OAE - Bootcamp
Apereo OAE - BootcampApereo OAE - Bootcamp
Apereo OAE - Bootcamp
 
Effective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperEffective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and Dapper
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projects
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven Development
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system development
 
Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...
Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...
Evolving The Optimal Relevancy Scoring Model at Dice.com: Presented by Simon ...
 
Lucene Bootcamp - 2
Lucene Bootcamp - 2Lucene Bootcamp - 2
Lucene Bootcamp - 2
 
Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019
 
Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014Node.js Dublin Meetup April 2014
Node.js Dublin Meetup April 2014
 

Recently uploaded

Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 

Recently uploaded (20)

Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 

JUnit 5 Slides: Next generation Framework for Testing

  • 1. S U R I N D E R 2 2 N D F E B R U A R Y , 2 0 1 9 JUnit 5 Disclaimer : Only for learning and knowledge sharing purposes
  • 2. Agenda • Motivation for Junit 5 • Architecture of Junit 5 • Features • Demo • Questions
  • 3. Motivation • Modularity-> Big ball of mud(A Junit.jar) • Test discovery and execution are tightly coupled • Extensibility-> lot of room for improvement • Java 8 and beyond? • Not Composable • Parameterized and SpringRunner together ? No way
  • 4. How it started • Junit lambda- Crowdfunding Campaign • Initiated by Johannes Link and Marc Phillip • Ran from July to October 2015 • Raised 53,937 Euros from 474 individuals and companies • 4 companies donated 6 weeks of developer time. • Created from scratch using java 8
  • 5. Junit 5 in a Nutshell • Modular • Extensible • Modern • Backward compatible
  • 8. Junit Jupiter • Programming model • How you write tests • Test API • Annotations • Assertions • Assumptions • Type of tests • Extension Model Register extensions
  • 9. What does JUnit Jupiter need • Java 1.8: to use lambdas and streams • Spring 5: to use SpringExtensions
  • 12. Junit 5 Features • Annotations, Assertions • Exceptions • DisplayName for tests • Timeouts on APIs • Ordering tests • Conditional Disabling the tests • Tagging and Filtering • Nested Tests • Dependency Injection to test methods • Repeated Tests • Parameterized Tests • Extensions • Dynamic Tests
  • 14. Assert exceptions on actual API Junit 4: Junit 5:
  • 15. Assert timeouts on actual API Junit 4: Junit 5:
  • 16. Disable Tests on Condition
  • 17. Test Display names of your choice
  • 18. Run Test cases in sequence • Run tests scenarios in order • Add @TestMethodOrder on test class • Add Order(sequence number ) on test methods
  • 19. Nested Tests • Best suited when a file has large no of test cases • Manage related test scenarios under common heading • Test case is more readable • e.g. Logical grouping of test cases for Stack operations
  • 20. Repeated Tests • Run same test multiple times as desired • Run lifecycle callback methods just like usual test case • Access to current and total repetitions
  • 21. Parameterized Tests • Run a test on different inputs • Provide various input data providers • Value Source, Method Source, CsvSource to name a few
  • 22. JUnit Jupiter – Extension model • Extension • Marker interface • Org.junit.Jupiter.api.extension • Package containing all extension APIs • Implement as many you like • @ExtedWith(…) • Used to register one or more extensions • Meta annotations
  • 23. Execution Mode • Same thread, Concurrent • Enable disable Parallelism • Can define parallelism strategy: fixed or dynamic • No of threads configuration based on CPU cores • Enable above properties from file
  • 24. Where can I find the source code ? • Source code GitHub repo: • https://github.com/Rednirus/JUnit5 • Source code for snapshots presented in the slides • Some additional features not covered in slides • Repository is public • Feedback and suggestions ? Inbox me on LinkedIn: • https://www.linkedin.com/in/surinderkmehra/
  • 25. References • https://junit.org/junit5/docs/current/user-guide/ • https://www.youtube.com/watch?v=K7g2HUhWbNE • https://www.youtube.com/watch?v=0qI6_NKFQsY • https://www.linkedin.com/learning/learning-junit-5 • https://junit.org/junit5/docs/5.0.1/api/overview-summary.html