Public Sector

We've had the pleasure of working with UK and overseas central and local government departments, including Healthcare (NHS and Foundation Trusts), Defence, Education (Universities and colleges), many of the main Civil Service departments, Emergency Services; also public-owned corporations including the BBC, Bank of England, Ordnance Survey, and regulatory bodies such as Ofgem.

We are registered on Crown Commercial Service’s (CCS) Dynamic Purchasing System (RM6219 Training and Learning) and also with numerous tender portals such as Ariba, Coupa and Delta E-Sourcing.

Read more...

Graduate Training Schemes

Framework Training has a strong track record of providing a solid introduction into the working world for technical graduates across myriad industries. We provide the opportunity to learn and gain valuable hands-on experience in a supportive, friendly and sociable training environment.

Attract & retain the brightest new starters

We know it is vital for our clients to invest in the future of their talented grads; not only to provide them with high-quality, professional training essential for their roles, but to embed them within the organisation’s culture and guide them on the right path to a successful career.

After all, your new hires could well be the next leaders and their creative ideas and unique insights are invaluable to your business.

Read more ...

Learning & Development

Our unique portfolio of high-quality technical courses and training programmes are industry-respected. They’re carefully designed so that delegates can seamlessly apply what they’ve learnt back in the workplace. Our team of domain experts, trainers, and support teams know our field — and all things tech — inside out, and we work hard to keep ourselves up to speed with the latest innovations. 

We’re proud to develop and deliver innovative learning solutions that actually work and make a tangible difference to your people and your business, driving through positive lasting change. Our training courses and programmes are human-centred. Everything we do is underpinned by our commitment to continuous improvement and learning and generally making things much better.

Read more...

Corporate & Volume Pricing

Whether you are looking to book multiple places on public scheduled courses (attended remotely or in our training centres in London) or planning private courses for a team within your organisation, we will be happy to discuss preferential pricing which maximise your staff education budget.

Enquire today about:

  • Training programme pricing models  

  • Multi-course voucher schemes

Read more...

Custom Learning Paths

We understand that your team training needs don't always fit into a "one size fits all" mould, and we're very happy to explore ways in which we can tailor a bespoke learning path to fit your learning needs.

Find out about how we can customise everything from short overviews, intensive workshops, and wider training programmes that give you coverage of the most relevant topics based on what your staff need to excel in their roles.

Read more...

Hands-on Java TDD Workshop

Deliver high-quality Java applications with proven Test Driven Development techniques.

About the course

Test Driven Development (TDD) is synonymous with Agile software development, and as its name suggests, promotes a "test-first" mentality. Test Driven Development aims to produce better code from the outset, driving towards more efficient and leaner software, getting to market faster, and with less time spent fixing bugs after release.

This Java TDD course provides developers with the essential skills to write robust, maintainable, and high-quality code through Test-Driven Development. You'll learn how to apply TDD principles using JUnit 5 and Mockito, refactor code for testability, and integrate automated testing into your development workflow with CI tools like Jenkins and build tools like Maven and Gradle.

Through hands-on exercises, you'll gain practical experience in writing effective unit tests, applying TDD to real-world scenarios, and mastering the techniques to deliver reliable software.

Instructor-led online and in-house face-to-face options are available - as part of a wider customised training programme, or as a standalone workshop, on-site at your offices or at one of many flexible meeting spaces in the UK and around the World.

    • Write clean, effective, and maintainable Java code using TDD.
    • Master JUnit 5 for unit testing and Mockito for creating test doubles.
    • Apply the Red-Green-Refactor cycle to develop software iteratively.
    • Refactor existing Java code to improve its testability.
    • Integrate automated testing into your development workflow.
    • Use Maven or Gradle to manage dependencies and build your projects.
    • Set up a continuous integration pipeline with Jenkins.
    • Understand and apply key TDD principles and best practices.
    • Design and write unit tests for a variety of Java applications.
    • Identify and address common TDD anti-patterns.
  • This course is designed for existing Java developers who want to write cleaner, more maintainable, and robust code through Test-Driven Development (TDD).

  • To get the most out of this course, you should have attended our Java Programming training course, or have equivalent experience:

    • Solid understanding of Java programming

    • Familiarity with object-oriented programming concepts

    • Experience with a Java IDE (e.g., IntelliJ IDEA, Eclipse)

  • This Java TDD course is available for private / custom delivery for your team - as an in-house face-to-face workshop at your location of choice, or as online instructor-led training via MS Teams (or your own preferred platform).

    Get in touch to find out how we can deliver tailored training which focuses on your project requirements and learning goals.

  • Introduction to Testing and Test-Driven Development (TDD)

    • The Importance of Testing in Software Development

    • Agile Methodologies and TDD

    • Testing vs. Debugging

    • Levels of Testing (Unit, Integration, System)

    • Overview of Unit Testing: Concepts and Benefits

    • TDD: Red-Green-Refactor Cycle

    • TDD Principles: Write Tests First, Keep it Simple

    Unit Testing with JUnit and Test Doubles

    • JUnit 5 Fundamentals:

      • Test cases, test suites, and fixtures (@BeforeEach, @AfterEach, @BeforeAll, @AfterAll)

      • Assertions (assertEquals, assertTrue, assertFalse, assertThrows, etc.)

      • Organizing tests with @Nested

      • Tagging and filtering tests

    • Writing Effective Unit Tests:

      • What to test: Focusing on behavior, not implementation

      • Test Isolation: Avoiding dependencies and side effects

      • Testing for exceptions

      • Test doubles:

        • Mocks, stubs, and spies

        • Using a mocking framework (e.g., Mockito)

    Refactoring for Testability

    • Refactoring Java Code:

      • What, when, and why to refactor

      • Identifying code smells (e.g., Long Method, Large Class, Duplicated Code)

      • Refactoring techniques for testability (e.g., Extract Method, Extract Interface, Replace Conditional with Polymorphism)

    • Working with Legacy Code:

      • Strategies for testing code without tests

      • Characterization tests

      • Dealing with dependencies

    • Dependency Injection:

      • Understanding DI principles

      • Manual dependency injection

      • Using a DI framework (e.g., Spring DI, Guice) - Introduction only, full DI is a separate course

    Advanced Testing Concepts

    • Test Coverage:

      • Measuring test effectiveness (e.g., line coverage, branch coverage)

      • Tools for measuring coverage (e.g., JaCoCo)

      • The importance of aiming for high coverage

    • Design Patterns for Testability

    • Testing Asynchronous Code

    • Testing with Lambdas and Streams

    Continuous Integration and Build Automation

    • Automating Tests:

      • Benefits of automated testing

      • Integrating tests into the build process

    • Continuous Integration (CI):

      • Introduction to CI concepts and benefits

      • Setting up a CI pipeline

    • Jenkins CI:

      • Introduction to Jenkins

      • Creating and configuring Jenkins jobs/pipelines

      • Integrating with version control systems (e.g., Git)

      • Running tests in Jenkins

    • Build Automation Tools:

      • Maven: Project Object Model (POM), dependencies, and plugins

      • Gradle: Build scripts, dependencies, and tasks

    • Version Control Best Practices:

      • Using Git for source code management

      • Branching strategies (e.g., Gitflow)

      • Code reviews and pull requests

    Test-Driven Development in Practice

    • Applying TDD to different types of applications (e.g., web applications, APIs)

    • TDD and database interactions (using test doubles or in-memory databases)

    • TDD and UI development

    • Common TDD anti-patterns and how to avoid them

    • Real-world TDD examples and case studies

    1. JUnit 5 User Guide: https://junit.org/junit5/docs/current/user-guide/index.html - The official documentation for JUnit 5.

    2. Mockito Documentation: https://site.mockito.org/ - The official documentation for Mockito, a popular mocking framework for Java.

    3. Apache Maven: https://maven.apache.org/ - The website for Apache Maven, a build automation tool.

    4. Gradle: https://gradle.org/ - The website for Gradle, a modern build automation tool.

    5. Jenkins: https://www.jenkins.io/ - The website for Jenkins, a popular continuous integration server.

Trusted by

IBM company logo Amadeus Services company logo

Public Courses Dates and Rates

Please get in touch for pricing and availability.

Related courses