diff --git a/testing-modules/junit-5/pom.xml b/testing-modules/junit-5/pom.xml
index 93365264ac..b7600267d9 100644
--- a/testing-modules/junit-5/pom.xml
+++ b/testing-modules/junit-5/pom.xml
@@ -72,6 +72,13 @@
+
+ org.mockito
+ mockito-junit-jupiter
+ ${mockito.junit.jupiter.version}
+ test
+
+
org.powermock
powermock-api-mockito2
@@ -118,13 +125,13 @@
- 5.2.0
+ 5.3.1
+ 2.23.0
1.2.0
5.2.0
2.8.2
1.4.196
- 2.8.9
- 1.7.4
+ 2.0.0-RC.1
2.21.0
1.6.0
5.0.1.RELEASE
diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/junit5/mockito/MockitoExtension.java b/testing-modules/junit-5/src/test/java/com/baeldung/junit5/mockito/MockitoExtension.java
deleted file mode 100644
index 5836ef46e6..0000000000
--- a/testing-modules/junit-5/src/test/java/com/baeldung/junit5/mockito/MockitoExtension.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright 2015-2016 the original author or authors.
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution and is available at
- *
- * http://www.eclipse.org/legal/epl-v10.html
- */
-
-package com.baeldung.junit5.mockito;
-
-import static org.mockito.Mockito.mock;
-
-import java.lang.reflect.Parameter;
-
-import org.junit.jupiter.api.extension.ExtensionContext;
-import org.junit.jupiter.api.extension.ExtensionContext.Namespace;
-import org.junit.jupiter.api.extension.ExtensionContext.Store;
-import org.junit.jupiter.api.extension.ParameterContext;
-import org.junit.jupiter.api.extension.ParameterResolver;
-import org.junit.jupiter.api.extension.TestInstancePostProcessor;
-import org.mockito.MockitoAnnotations;
-import org.mockito.Mock;
-
-/**
- * {@code MockitoExtension} showcases the {@link TestInstancePostProcessor}
- * and {@link ParameterResolver} extension APIs of JUnit 5 by providing
- * dependency injection support at the field level and at the method parameter
- * level via Mockito 2.x's {@link Mock @Mock} annotation.
- *
- * @since 5.0
- */
-public class MockitoExtension implements TestInstancePostProcessor, ParameterResolver {
-
- @Override
- public void postProcessTestInstance(Object testInstance, ExtensionContext context) {
- MockitoAnnotations.initMocks(testInstance);
- }
-
- @Override
- public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) {
- return parameterContext.getParameter().isAnnotationPresent(Mock.class);
- }
-
- @Override
- public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) {
- return getMock(parameterContext.getParameter(), extensionContext);
- }
-
- private Object getMock(Parameter parameter, ExtensionContext extensionContext) {
- Class> mockType = parameter.getType();
- Store mocks = extensionContext.getStore(Namespace.create(MockitoExtension.class, mockType));
- String mockName = getMockName(parameter);
-
- if (mockName != null) {
- return mocks.getOrComputeIfAbsent(mockName, key -> mock(mockType, mockName));
- }
- else {
- return mocks.getOrComputeIfAbsent(mockType.getCanonicalName(), key -> mock(mockType));
- }
- }
-
- private String getMockName(Parameter parameter) {
- String explicitMockName = parameter.getAnnotation(Mock.class).name().trim();
- if (!explicitMockName.isEmpty()) {
- return explicitMockName;
- }
- else if (parameter.isNamePresent()) {
- return parameter.getName();
- }
- return null;
- }
-
-}
\ No newline at end of file
diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/junit5/mockito/UserServiceUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/junit5/mockito/UserServiceUnitTest.java
index 1ddab0531a..d4195e3b12 100644
--- a/testing-modules/junit-5/src/test/java/com/baeldung/junit5/mockito/UserServiceUnitTest.java
+++ b/testing-modules/junit-5/src/test/java/com/baeldung/junit5/mockito/UserServiceUnitTest.java
@@ -3,9 +3,7 @@ package com.baeldung.junit5.mockito;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.*;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
@@ -16,6 +14,7 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
+import org.mockito.junit.jupiter.MockitoExtension;
import org.mockito.stubbing.Answer;
import com.baeldung.junit5.mockito.repository.MailClient;
@@ -25,21 +24,24 @@ import com.baeldung.junit5.mockito.service.DefaultUserService;
import com.baeldung.junit5.mockito.service.Errors;
import com.baeldung.junit5.mockito.service.UserService;
-@RunWith(JUnitPlatform.class)
@ExtendWith(MockitoExtension.class)
+@RunWith(JUnitPlatform.class)
public class UserServiceUnitTest {
UserService userService;
+ SettingRepository settingRepository;
@Mock UserRepository userRepository;
-
+ @Mock MailClient mailClient;
+
User user;
@BeforeEach
- void init(@Mock SettingRepository settingRepository, @Mock MailClient mailClient) {
+ void init(@Mock SettingRepository settingRepository) {
userService = new DefaultUserService(userRepository, settingRepository, mailClient);
- when(settingRepository.getUserMinAge()).thenReturn(10);
+ lenient().when(settingRepository.getUserMinAge()).thenReturn(10);
when(settingRepository.getUserNameMinLength()).thenReturn(4);
- when(userRepository.isUsernameAlreadyExists(any(String.class))).thenReturn(false);
+ lenient().when(userRepository.isUsernameAlreadyExists(any(String.class))).thenReturn(false);
+ this.settingRepository = settingRepository;
}
@Test
@@ -56,7 +58,9 @@ public class UserServiceUnitTest {
return user;
}
});
-
+
+ userService = new DefaultUserService(userRepository, settingRepository, mailClient);
+
// When
User insertedUser = userService.register(user);