Пересмешивание объектов, созданных внутри метода Тестируется

У меня есть класс, который я хотел бы проверить. Когда бы ни было возможно, я сделал бы инъекции зависимостей для этого класса, который зависит от объекта других классов. Но я столкнулся со случаем, когда я хотел бы смоделировать объект без реструктуризации кода и не Appling DI.

Вот тестируемый класс:

public class Dealer {

    public int show(CarListClass car){
        Print print=new Print();

        List<String> list=new LinkedList<String>();

        list=car.getList();
        System.out.println("Size of car list :"+list.size());

        int printedLines=car.printDelegate(print);
        System.out.println("Num of lines printed"+printedLines);

        return num;
    }
}

и мой тестовый класс для этого:

public class Tester {
    Dealer dealer;

     CarListClass car=mock(CarListClass.class);  
     List<String> carTest;
     Print print=mock(Print.class);

    @Before
    public void setUp() throws Exception {
        dealer=new Dealer();
        carTest=new LinkedList<String>();
        carTest.add("FORD-Mustang");
        when(car.getList()).thenReturn(carTest);
        when(car.printDelegate(print)).thenReturn(9);
    }

    @Test
    public void test() {

        int no=dealer.show(car);
        assertEquals(2,number);//not worried about assert as of now

    }
}

Я не мог найти решение для насмешки над объектом печати внутри класса Dealer. Так как я высмеиваю его в классе Test, но он создается в тестируемом методе. Я провел исследование, но не смог найти ничего хорошего ресурс.

Я знаю, что создание объекта Print из этого метода и Injection - лучший способ, но я хотел бы протестировать код, как есть, с созданием объекта print внутри метода. Есть ли способ сделать это

Ответы на вопрос(1)

Ваш ответ на вопрос