Win a copy of Kotlin in Action this week in the Kotlin forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Suppressing a method using Powermock results in AssertionError  RSS feed

Mani Shah
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi ,

I was trying to suppress a method of different class and I am getting following error:

Unexpected method call Class1.func1():
at org.easymock.internal.MockInvocationHandler.invoke(
at org.easymock.internal.ObjectMethodsFilter.invoke(
at org.easymock.internal.ClassProxyFactory$MockMethodInterceptor.intercept(
at com.mock.Class1$$EnhancerByCGLIB$$443e28a1.func1(<generated>)
at com.mock.Class2.func2(
at com.mock.TestClass2.testfunc2(

Following is the code:

public class Class2 {

public void func2(){

Class1 obj1 = new Class1();
System.out.println("class1 member :" + obj1.member);
int val = obj1.func1();


public class Class1 {

public int member =14;

public int func1() {
return 16;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.easymock.PowerMock;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

@PrepareForTest( { Class2.class })
public class TestClass2 {

public void testfunc2(){

Class2 class2 = new Class2();

try {
Class1 mock1 = PowerMock.createMockAndExpectNew(Class1.class);
} catch (Exception e) {
// TODO Auto-generated catch block


Can someone please help here?

Steve Luke
Posts: 4181
IntelliJ IDE Java Python
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I don't think you are mixing the supress and replay methods correctly. The suppress doesn't prevent the method call from happening, it just prevents the code from being executed. Then you put the mock in replay mode but don't tell it what methods to expect, so the mock expects no methods to be called. When you run the test a method is called so the assertion that no method is called fails. The solution is to add an expect for the method to be called.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!