简体   繁体   中英

PowerMock mock creation of new object of generic class

I need to mock creation of two objects

Holder<MyClass1> h1 = new Holder<>();
Holder<MyClass2> h2 = new Holder<>();

I use Mockito and PowerMock

Holder<MyClass1> mock1 = PowerMockito.spy(new Holder<MyClass1>());
Holder<MyClass2> mock2 = PowerMockito.spy(new Holder<MyClass2>());

PowerMockito.whenNew(Holder.class).withNoArguments().thenReturn(mock1);

How can I specify generic type to mock two different objects? I need 2 mock for my test. Thank you.

One option is to use wildcard '?' , as:

 Holder<?> holder = new Holder<>();
 Holder<?> mock1 = PowerMockito.spy(holder);
 Holder<?> mock2 = PowerMockito.spy(holder);
 PowerMockito.whenNew(Holder.class).withNoArguments().thenReturn(mock1);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM