Re: [powermock] How do I use PowerMockito to mock a final class

8,032 views
Skip to first unread message

Johan Haleby

unread,
Jul 27, 2012, 7:38:46 AM7/27/12
to powe...@googlegroups.com
You need to prepare the class for test using the @PrepareForTest annotation. See documentation.

/Johan

On Fri, Jul 27, 2012 at 1:24 PM, DK <desmond...@gmail.com> wrote:
I've tried the following but I cannot mock a final class

MyFinalClass mock = PowerMockito.mockStatic( MyFinalClass.class);
PowerMockito.when(mock.hasToken()).thenReturn(false);

java.lang.IllegalArgumentException: Cannot subclass final class class MyFinalClass...
at org.mockito.cglib.proxy.Enhancer.generateClass(Enhancer.java:447)
at org.mockito.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
at org.mockito.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:217)
at org.mockito.cglib.proxy.Enhancer.createHelper(Enhancer.java:378)
at org.mockito.cglib.proxy.Enhancer.createClass(Enhancer.java:318)
at org.mockito.internal.creation.jmock.ClassImposterizer.createProxyClass(ClassImposterizer.java:93)
at org.mockito.internal.creation.jmock.ClassImposterizer.imposterise(ClassImposterizer.java:50)
at org.powermock.api.mockito.internal.mockcreation.MockCreator.createMethodInvocationControl(MockCreator.java:100)
at org.powermock.api.mockito.internal.mockcreation.MockCreator.mock(MockCreator.java:58)
at org.powermock.api.mockito.PowerMockito.mock(PowerMockito.java:138)

--
You received this message because you are subscribed to the Google Groups "PowerMock" group.
To view this discussion on the web visit https://groups.google.com/d/msg/powermock/-/9hp1sjHqUiMJ.
To post to this group, send email to powe...@googlegroups.com.
To unsubscribe from this group, send email to powermock+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/powermock?hl=en.

Brice Dutheil

unread,
Jul 27, 2012, 7:38:16 AM7/27/12
to powe...@googlegroups.com
Hi,

Did you used the PowerMock runner and added the annotation on the test ?

@PrepareForTest(MyFinalClass.class)

Cheers,
-- Brice
Reply all
Reply to author
Forward
0 new messages