How to mock object created with new keyword using mockito

Viewed 18

This is the class structure:

class A {
    private B b;
    A() {
        b = new B();
    }
    public void foo() {
        b.anotherMethod();
    }
}

Test class:

    class TestA {
        @Mock
        B b;
        @Test
        public testFoo() {
            A a = new A();
            when(b.anotherMethod()).thenReturn("something");
            a.foo();
        }
    }

I want to mock object of b, but it's never getting mocked. new B() creates an object of B and real anotherMethod() gets called instead of the thenReturn("something") How can I mock new B() to return mocked object of B so that anotherMethod() doesn't get called?

0 Answers
Related