Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8959083
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 15, 20262026-06-15T15:22:02+00:00 2026-06-15T15:22:02+00:00

If I wrap a mock created by Mockito at runtime and then call a

  • 0

If I wrap a mock created by Mockito at runtime and then call a method on the wrapper, the wrapped mock is not called. Please, see below:

This is the test I run:

import static org.mockito.Mockito.verify;
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.NoOp;
import org.junit.Test;
import org.mockito.Mockito;

public class MyTest {

    @Test
    public void mockIsCalled() {
        final Bar bar = Mockito.mock(Bar.class);
        final Bar wrapper = wrap(bar);
        wrapper.foo();
        verify(bar).foo();
    }

    @SuppressWarnings("unchecked")
    private <T> T wrap(final T objToWrap) {
        return (T) Enhancer.create(objToWrap.getClass(), NoOp.INSTANCE);
    }

}

where Bar is:

public interface Bar {
    String foo();
}

The test fails and the output I get is:

java.lang.NoSuchMethodError: java.lang.Object.foo()Ljava/lang/String;
    at Bar$$EnhancerByMockitoWithCGLIB$$d2b59df8.foo(<generated>)
    at MyTest.mockIsCalled(MyTest.java:18)
...

If I turn Bar into a class as in:

public class Bar {

    public String foo() {
        System.out.println("foo");
        return null;
    }

}

the test continues to fail, foo is printed on the console, and I get the output:

Wanted but not invoked:
bar.foo();
-> at MyTest.mockIsCalled(MyTest.java:20)
Actually, there were zero interactions with this mock.

    at MyTest.mockIsCalled(MyTest.java:20)
...

I am confused.

The real problem that I am trying to solve is to wrap dynamic proxies (injected by Mule via component binding) in order to memoize the method calls on the wrapped dynamic proxies. I want to make it generic enough so that it is sufficient to wrap the dynamic proxy object without having to extend any interface.

Thanks

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-15T15:22:03+00:00Added an answer on June 15, 2026 at 3:22 pm

    The problem you’re seeing in the case of the Bar class, you would also be seeing in the interface version, if not for the cglib wackiness. You’re not wrapping the mock, you’re creating a new object. So, the original mock is never exercised.

    For using the class version, have you tried the version of create() that accepts interfaces as params?

    I’m not sure I fully grok your usage scenario, but for something Mockito-specific, you could try taking the proxy created by cglib and then using spy() on that instead of mocking a fresh object.

    I don’t know much about cglib, frankly, but perhaps you could implement your own Callback, which contains and delegates to the original object. You could supply that Callback to Enhancer.create() instead of the NoOp one.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I wrap my project in OSGi bundle(just call my first start method from Activator.start()).
I'm trying to wrap my head around Arquillian and am just not fundamentally understanding
For example, I have the following code: SomeClass stub = Mockito.mock(SomeClass.class); After that, stub
Wrap mode, if a paragraph has multiple rows, when it reaches the window at
I cannot wrap my brain around the following thing ... and I hope there's
I am trying to wrap my head around serialization. But what happens if for
Example CSS #wrap{margin:20px} Code prettify wraps the whole line in .com <span class=com>#wrap{margin:20px}</span> Somebody
Is it possible to wrap google map API v3(javascript) to wrap in a .net
I am trying to wrap a span around all numbers in a div so
I am trying to wrap my head around Apache Camel, which appears to be

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.