Junit5 Mockito
Junit5 Mockito
JAVA Applications
What is Unit Testing?
Unit Testing is the process of testing individual units (small pieces) of code — like methods or classes — in
isolation to check if they work as expected.
Mockito is used to mock dependencies so we can test only the part of the code we are interested in — without
involving external classes or services
Confidence: We know our code works because it has been tested automatically.
JUnit → For writing test cases (allows us to write code that checks if your methods work correctly)
Mockito → For mocking dependencies (a fake version of a class - we can control what it returns)
public class GreetingService {
public String greet(String name) { JUnit Test Without Mockito
return "Hello, " + name;
}
}
assertEquals("Hello, Alice!
Welcome!", result);
}
Greeting Service is mocked, so we can test }
WelcomeManager in isolation.
Comparing with same Example
// GreetingService.java // WelcomeManager.java (uses constructor injection)
public class GreetingService { public class WelcomeManager {
public String greet(String name) { private GreetingService greetingService;
return "Hello, " + name;
} public WelcomeManager(GreetingService greetingService) {
} this.greetingService = greetingService;
}
// WelcomeManager.java
public class WelcomeManager { public String welcome(String user) {
private GreetingService greetingService; return greetingService.greet(user) + "! Welcome!";
}
public WelcomeManager() { }
this.greetingService = new GreetingService(); // hard-coded
} // WelcomeManagerTest.java (JUnit + Mockito)
import static org.mockito.Mockito.*;
public String welcome(String user) { import static org.junit.jupiter.api.Assertions.*;
return greetingService.greet(user) + "! Welcome!"; import org.junit.jupiter.api.Test;
}
} class WelcomeManagerTest {