I'm trying to mock one class (WebResource.Builder) from Jersey Client
API (
https://jersey.dev.java.net/source/browse/jersey/tags/jersey-1.4/
jersey/jersey-client/src/main/java/com/sun/jersey/api/client/
WebResource.java?rev=4215&view=markup).
But I always get "java.lang.IllegalArgumentException: Cannot subclass
final class class"
PowerMock: 1.4.5
EasyMock: 3.0
JUnit: 4.4
....
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.WebResource.Builder;
....
@RunWith(PowerMockRunner.class)
@PrepareForTest({WebResource.class, Builder.class})
.............
@Test
public void getConsoleStatusTest() throws Exception {
.................
Builder bld = PowerMock.createMock(Builder.class);
.................
}
java.lang.IllegalArgumentException: Cannot subclass final class class
com.sun.jersey.api.client.WebResource$Builder
at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:446)
at
net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:
25)
at
net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:
216)
at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
at net.sf.cglib.proxy.Enhancer.createClass(Enhancer.java:317)
at
org.easymock.internal.ClassProxyFactory.createProxy(ClassProxyFactory.java:
181)
at org.easymock.internal.MocksControl.createMock(MocksControl.java:
60)
at org.powermock.api.easymock.PowerMock.doCreateMock(PowerMock.java:
2211)
at org.powermock.api.easymock.PowerMock.doMock(PowerMock.java:2162)
at org.powermock.api.easymock.PowerMock.createMock(PowerMock.java:98)
at <my test class>