Java Testing with JUnit 5 Training in Dayton
Enroll in or hire us to teach our Java Testing with JUnit 5 class in Dayton, Ohio by calling us @303.377.6176. Like all HSG
classes, Java Testing with JUnit 5 may be offered either onsite or via instructor led virtual training. Consider looking at our public training schedule to see if it
is scheduled: Public Training Classes
Provided there are enough attendees, Java Testing with JUnit 5 may be taught at one of our local training facilities.
We offer private customized training for groups of 3 or more attendees.
|
||
Course Description |
||
This course introduces experienced Java developers to the fundamentals
and best practices in unit testing. It uses the JUnit 5 and Mockito
libraries, both of which are ubiquitous in the Java community. It is
intended for both developers who are new to testing, as well as those
who are already familiar with it, but want more experience with testing
using JUnit 5. Note that JUnit 5 is substantively different than JUnit
4. Although the core testing principles are the same, there are
substantial implementation differences, important new features, and a
brand new extension model. Developers with JUnit 3 and 4 experience will
be well-served by the course.
Course Length: 2 Days
Course Tuition: $990 (US) |
Prerequisites |
|
The student is expected to have a good working knowledge of Java and OO, including the use of interfaces, abstract classes, collections, factories, and generics. Experience with Java 8 lambda expressions is helpful, but not strictly required. A brief primer on the Java 8 features employed by JUnit is included in the course and covered if necessary. |
Course Outline |
Session 1: Unit Testing with JUnit 5
Overview
Unit Testing and JUnit Overview
New Features in JUnit 5
JUnit 5 Library Components
Naming Conventions and Organizing Tests
Tests and Assertions
Writing Test Methods
Assertions
Assertion Messages
Test Fixtures and Test Lifecycle
Creating and Using Text Fixtures
Test Run Lifecycle: @BeforeEach and @AfterEach, @BeforeAll and @AfterAll
Controlling Test Instances
Session 2: Writing and Running Tests (includes brief primer on Java 8 new features)
Additional Testing Needs
Testing for Exceptions
Setting Timeouts
Assertion Groups
Running Test
IDE Support: Eclipse, IntelliJ IDEA
Maven Configuration
JUnit Platform Console Launcher
Launcher API
Test Discovery and Selection
Display Names
Grouping and Filtering with Tags
Configuration Parameters
Nested Tests
Advanced Capabilities
Custom Composed Annotations
Inheritance with Test Classes
Extensions
Conditional Test Execution
Parameterized Tests
JUnit 4 Migration
The Do-Nothing Case
Using a JUnit 4 Runner
API Changes
JUnit 4 Runners and Rules
JUnit 4 Test Suites
Best Practices
Testing Void and Private Methods
Test Cohesion and Assertion Scope
Characteristics of Good Tests
Writing Testable Code
Testing Anti-Patterns
Session 3: Testing with Mocks
Overview
Mock Objects as Collaborators
Mockito Overview
Creating and Using Mocks
Basic Steps in Mocking
The Mockito Class
Mock Creation with @Mock
JUnit 5 MockitoExtension
Stubbing
Additional Capabilities
Argument Matchers
Partial Mocking with Spies
Mocking the Unmockable
Dependency Injection of Mocks
Session 4: Testing Enterprise Components
Overview
Unit Testing vs. Integration Testing
Testing with Mocks vs. In-Container Testing
Mocks vs. Fakes
Testing the Persistence Layer
Database Options: Installed, Embedded, Embedded-in-Memory
Standalone vs. In-Container Testing
Test Independence and Transaction Rollback
In-Container Testing with Arquillian [Overview]
Testing Services
Similar Issues, Different Layer
Working with External Resources
The Argument for In-Container Testing
Testing Web Components
Interfacing with External Clients
Difficulties in Standalone Testing with Mocks
Manual vs. Automated Testing
Automated Testing with Selenium [Overview]
|
Course Directory [training on all levels]
Technical Training Courses
Software engineer/architect, System Admin ... Welcome!
- .NET Classes
- Agile/Scrum Classes
- Ajax Classes
- Android and iPhone Programming Classes
- Blaze Advisor Classes
- C Programming Classes
- C# Programming Classes
- C++ Programming Classes
- Cisco Classes
- Cloud Classes
- CompTIA Classes
- Crystal Reports Classes
- Design Patterns Classes
- DevOps Classes
- Foundations of Web Design & Web Authoring Classes
- Git, Jira, Wicket, Gradle, Tableau Classes
- IBM Classes
- Java Programming Classes
- JBoss Administration Classes
- JUnit, TDD, CPTC, Web Penetration Classes
- Linux Unix Classes
- Machine Learning Classes
- Microsoft Development Classes
- Microsoft SQL Server Classes
- Microsoft Team Foundation Server Classes
- Microsoft Windows Server Classes
- Oracle, MySQL, Cassandra, Hadoop Database Classes
- Perl Programming Classes
- Python Programming Classes
- Ruby Programming Classes
- Security Classes
- SharePoint Classes
- SOA Classes
- Tcl, Awk, Bash, Shell Classes
- UML Classes
- VMWare Classes
- Web Development Classes
- Web Services Classes
- Weblogic Administration Classes
- XML Classes
Business Training Courses
Project Managers, Business Analysts, Paralegals ... Welcome!
Upcoming Classes
Gain insight and ideas from students with different perspectives and experiences.
- Beginning Python
15 February, 2021 - 17 February, 2021 - C++ Programming
19 April, 2021 - 23 April, 2021 - 20483: Programming in C#
1 February, 2021 - 5 February, 2021 - Advanced C++ for Experts - Design Patterns, STL, C++11/C++14
12 April, 2021 - 13 April, 2021 - VMware vSphere 6.7 with ESXi and vCenter
8 March, 2021 - 12 March, 2021 - See our complete public course listing