0
0
JUnittesting~8 mins

Mockito dependency setup in JUnit - Framework Patterns

Choose your learning style9 modes available
Framework Mode - Mockito dependency setup
Folder Structure for JUnit + Mockito Project
project-root/
├── src/
│   ├── main/
│   │   └── java/
│   │       └── com/example/app/
│   │           └── (application source code)
│   └── test/
│       └── java/
│           └── com/example/app/
│               └── (test classes using JUnit and Mockito)
├── pom.xml (Maven build file with dependencies)
└── build.gradle (Gradle build file with dependencies)
    
Test Framework Layers
  • Test Classes: JUnit test classes where Mockito mocks are used to isolate units.
  • Mock Objects: Created with Mockito to simulate dependencies.
  • Test Utilities: Helper methods or classes to initialize mocks or common test data.
  • Configuration: Build files (pom.xml or build.gradle) to manage Mockito and JUnit dependencies.
Configuration Patterns for Mockito Dependency Setup

Use build tools to add Mockito and JUnit dependencies:

Maven (pom.xml)

<dependencies>
  <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.9.3</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>5.9.3</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>5.4.0</version>
    <scope>test</scope>
  </dependency>
</dependencies>

Gradle (build.gradle)

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.3'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.3'
    testImplementation 'org.mockito:mockito-core:5.4.0'
}

These dependencies ensure Mockito and JUnit are available only during testing.

Test Reporting and CI/CD Integration

JUnit and Mockito tests integrate with build tools to produce reports:

  • JUnit Reports: XML and HTML reports generated by Maven Surefire or Gradle test tasks.
  • CI/CD: Jenkins, GitHub Actions, or GitLab CI run tests automatically on code changes.
  • Mockito: Works inside JUnit tests; failures show mock verification errors in reports.
Best Practices for Mockito Dependency Setup
  • Use the latest stable versions of Mockito and JUnit for compatibility and features.
  • Scope dependencies as test to avoid bloating production builds.
  • Keep test dependencies separate from main code dependencies.
  • Use build tool plugins (Maven Surefire, Gradle Test) to run tests and generate reports.
  • Document dependency versions in build files for easy updates and team sharing.
Self Check

Where in this folder structure would you add a new test class that uses Mockito to mock a service?

Key Result
Add Mockito and JUnit dependencies in build files to enable mocking in test classes under src/test/java.