Search code examples
javamockingjmock

JMock Allow Other Method Calls


I'm using JMock to test the behavior of a class using an object. I want to test that the method a() is called. However, b() and c() also are called on the object too. Therefore if my expectations expect a(), it must also expect b() and c() to make the test pass. Is there a way to test only for a certain method, and allow anything else?


Solution

  • Expect a() allow only methods b() & c()

    mockery.checking(new Expectations() {{
        one(mockObject).a();
    
        allowing(mockObject).b();
        allowing(mockObject).c();
    }});
    

    Expect a() allow all other methods.

    mockery.checking(new Expectations() {{
        one(mockObject).a();
    
        allowing(mockObject);
    }});