Test It Before You Ship It: Java API Testing Lab
Two hands-on days building a test suite you can actually trust: JUnit 5, Mockito, Spring Boot slices, Testcontainers against a real database, REST Assured and Karate from the outside, and a CI gate at the end, so production stops being the place your API gets tested first.
Designed for
- Java developers whose test suite is green and whose production is not
- Freshers who finished the Spring courses and have never tested beyond the happy path
- Teams whose "tests" are one controller test written for coverage
- Anyone who has deleted a flaky test instead of fixing it
- Fee
- ₹2,700
- Duration
- 2 days · 16 hours
- Each day
- 09:00 – 17:00
- Mode
- Offline / Online
The 2 days, hour by hour
10 hands-on sessions: every one ends in a thing
Day 1
09:00 – 17:00The fast layers: unit and slice
5 sessions09:00 – 10:15
Draw the pyramid for your own service
what each test layer buys, cost of each layer, mapping your current suite
Takeaway Your own suite mapped onto the pyramid, with the gaps named out loud, which is the plan for the two days.
10:30 – 11:45
Write unit tests that earn their keep
JUnit 5 lifecycle, parameterised tests, AssertJ assertions that explain failure
Takeaway A failing test whose message alone tells you the bug: no debugger, no print statements.
12:00 – 13:00
Isolate with Mockito, without mocking everything
mocks vs stubs vs fakes, Mockito verify used sparingly, the over-mocked smell
Takeaway One over-mocked test rewritten until it tests behaviour instead of implementation, and survives a refactor to prove it.
14:00 – 15:15
Test the web slice with Spring Boot Test
@WebMvcTest with MockMvc, validation and error contracts, security in slices
Takeaway Controller tests that fail when a status code, error shape or validation rule quietly changes.
15:30 – 17:00
Test the data layer against the real thing
@DataJpaTest with Testcontainers, real PostgreSQL vs H2, migrations under test
Takeaway The data layer tested on real PostgreSQL in a container, and the bug H2 would have hidden, demonstrated.
Day 2
09:00 – 17:00The outer layers: integration and outside-in
5 sessions09:00 – 10:15
Boot the whole service in a test
@SpringBootTest honestly costed, WireMock for third-party edges, context caching
Takeaway A full-context integration test that earns its runtime, and the suite reorganised so only a few need to.
10:30 – 11:45
Drive the API from the outside with REST Assured
REST Assured given/when/then, asserting the contract, auth in outside-in tests
Takeaway The API exercised exactly as a client would, with the error contract asserted, not assumed.
12:00 – 13:00
Automate scenarios with Karate
Karate feature files, data-driven scenarios, where Karate beats code
Takeaway A readable scenario file a non-developer could review, running against the same API, in CI like everything else.
14:00 – 15:15
Make the suite one you can trust
flaky tests to root cause, Awaitility for async assertions, test data builders
Takeaway A planted flaky test hunted to its cause: time, order and shared state all interrogated on the way.
15:30 – 17:00
Turn it into a gate and defend it
the suite in GitHub Actions, JaCoCo coverage read honestly, review
Takeaway The whole pyramid running as a CI gate that blocks a real planted regression, and the argument for each layer, made to the room.
By the end of day 2, you are holding
A layered test suite on a real Spring Boot API (unit, slice, integration and outside-in) running against a containerised database and wired into CI as a gate, plus the judgment to say what each layer is for and what is not worth asserting.
No dates announced
We open batches around demand. Tell us the schedule that would work and we will let you know first.
Send your details instead
More SkillLabs
One weekend, one capability
Agent Builder Lab
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
AI App Engineering Lab
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
Ground the Model: RAG Engineering Lab
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
Idea to Internet
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
Agents in the Wild: Production Agent Lab
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
Break It Before Users Do: AI Reliability Lab
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
Give Your Agent Hands: MCP Tooling Lab
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
Docker & Kubernetes for Developers
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
Git, GitHub and GitHub Actions for Developers
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
JavaScript and TypeScript Foundations
5 days · 10 hours
Runs on request
See the plan
Ship It on AWS: Cloud Deployment for Developers
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
SQL for Application Developers
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
Events in Motion: Kafka & Messaging for Java Developers
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
Linux Command Line Essentials
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
Logging & Monitoring for Production
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
Performance & Production Readiness
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
Redis & Caching for Java Services
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
Secure the Frontend: Authentication & Web Security Lab
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
Test the User Journey: Frontend Testing Lab
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
TypeScript for Application Developers
₹2,700 · 2 days · 16 hours
Runs on request
See the plan
Who runs it
Practitioners, in the room with you
All trainers and mentorsEach workshop names its trainer before you book.

Vishal Shah
Founder & Principal Trainer
Two decades building and teaching commerce, banking and cloud platforms, and still writing code
- Java & Spring Boot microservices
- TypeScript, React, Angular & Next.js
- Composable commerce (commercetools)
Running this for a team?
We deliver SkillLabs on site for institutions and engineering teams.
₹2,700
2 days · 16 hours