2015-07-03 3 views
0

Я новичок в тестировании JUnit. Я хотел бы поманить свою собственную переменную во время теста, когда возникает конкретное создание экземпляра.Как насмехаться над объектом при создании экземпляра?

Map<Integer, JsMenuItem> menuItemsMap = new HashMap<Integer, JsMenuItem>(); 

Я хотел бы сделать что-то подобное в моих Test:

Map<Integer, JsMenuItem> menuItemsMapMock = new HashMap<Integer, JsMenuItem>(); 
Mockito.when("new HashMap<Integer, JsMenuItem>()").thenReturn(menuItemsMapMock); 
+2

Что вы пытаетесь выполнить, насмехаясь над полем меню классаItemsMap? Я подозреваю, что вы пытаетесь добиться, это можно сделать без макетов. Обычно вы должны только обманывать объекты между границами модулей. – Sneal

+0

Если ваша карта спровоцирована в рамках метода, который вы хотите протестировать, я боюсь, что вы не сможете издеваться над этим. В этом случае вам нужно реорганизовать свой код, чтобы сделать его более подверженным проверке: разделение больших методов на более мелкие: таким образом, методы, которые содержат бизнес-код, могут отображать карту в качестве параметра и легко проверяться. – Joel

ответ

1

Я думаю, вы должны delagate инициализации карты общедоступного метода, а затем издеваться результатом метода.

Смежные вопросы