Я думаю, из вашего кода вы дали нам метод тестирования, в котором вы тестируете Fun
и смотрите на Map
, который производит Fun
.
Зависимость вводит MapFactory
, который создает Map
для Fun
. Я не уверен в синтаксисе EasyMock, так что mockMapFactory
здесь - это смоделированный объект, и у него будет метод для создания карты для вас. Запечатлейте этот метод для создания карты, затем вызовите метод внутри вашего класса вместо использования new
.
test() {
Fun f= new Fun(mockMapFactory);
Map m =f.getaMap();
}
Взгляните на шаблон проектирования фабрики, который является действительно отличным способом, позволяющим вам избегать вызова new
, чтобы вы могли высмеивать создание объектов (и самих объектов, если вам это нужно). Это также означает, что ваш класс больше не несет ответственности за решение, какой тип объекта он создает.
Вы не сможете высмеивать создание Карты внутри его фабрики, когда будете тестировать фабрику. Это нормально. Либо проверьте его осмотром, либо просто убедитесь, что вы получаете правильный вид объекта.