pom.xml
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.3.3</version>
<scope>test</scope>
</dependency>
java
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
@PrepareForTest(YourController.class) // モックするクラスを指定
public class YourControllerTest {
@InjectMocks
private YourController yourController;
@Mock
private SomeDependency someDependency;
@Test
public void testConstructor() throws Exception {
// YourControllerのコンストラクタをモックする
YourController mockController = PowerMockito.mock(YourController.class);
// コンストラクタの呼び出しをモック
PowerMockito.whenNew(YourController.class).withAnyArguments().thenReturn(mockController);
// 実際のコンストラクタ呼び出しを行う
YourController instance = new YourController(someDependency);
// モックが呼び出されたことを確認
PowerMockito.verifyNew(YourController.class).withArguments(someDependency);
}
}