Я новичок в mockito. Провел больше дня, пытаясь понять, как это работает. Это мое последнее средство.Локальный метод не обновляет переменные экземпляра моего издевающегося класса
У меня есть класс следующим образом:
class Check{
//Map<String, Long> map1 = new HashMap<String, Long>();
//Map<String, Long> map2 = new HashMap<String, Long>();
boolean myLocalMethod(String key, Map<String, Long> map1){
if(map1.get(key) == null){
map1.put("name", (long)10);
return false;
}
else if(map1.get(key) == 10)
return true;
else
return false;
}
У меня есть тестовый класс следующим образом:
class TestCheck(){
Check mockTest = mock(Check.class);
@Test // using testng. That's what I like
public void testMyLocalMethod(){
Map<String, Long> map1 = new HashMap<String, Long>();
Assert.assertFalse(mockTest.myLocalMethod("name", map1));
map1.put("name", (long)10);
Assert.assertTrue(mockTest.myLocalMethod("name", map1)); // fails
Это будет здорово, если кто-то может дать мне некоторые указания здесь. Заранее спасибо!
Mockito не использует вашу реализацию, просто ваш интерфейс. Вы не должны ожидать, что он обновит любые переменные. Если вы действительно хотите использовать свою реализацию 'Check', просто создайте его как обычно. –
О, ладно. Итак, выполнив тест, map1.put («name», 10) не будет обновляться, если я использую mock (Check.class)? –
Исправить. См. Мой ответ ниже для некоторого примера кода того, как вы можете думать о том, как реализуется макет. –