<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<scope>test</scope>
</dependency>
public class UserService {
public boolean authenticateUser(String username, String password) {
return false;
}
}
public class UserManager {
private UserService userService;
public boolean loginUser(String username, String password) {
return userService.authenticateUser(username, password);
}
}
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
@PrepareForTest(UserService.class)
public class UserManagerTest {
@Test
public void testLoginUser() {
UserService userServiceMock = PowerMockito.mock(UserService.class);
PowerMockito.when(userServiceMock.authenticateUser("admin", "password")).thenReturn(true);
PowerMockito.whenNew(UserService.class).withNoArguments().thenReturn(userServiceMock);
UserManager userManager = new UserManager();
boolean result = userManager.loginUser("admin", "password");
Assert.assertTrue(result);
PowerMockito.verify(userServiceMock, PowerMockito.times(1)).authenticateUser("admin", "password");
}
}