Size: a a a

StartAndroid Ru Testing

2018 August 07

W

WaterSmith in StartAndroid Ru Testing
ну и еще два теста: thenReturn(0)  и thenReturn(-1)
источник

W

WaterSmith in StartAndroid Ru Testing
и тебе уже не надо проверять, вызывался ли selectAllDashboard
источник

W

WaterSmith in StartAndroid Ru Testing
потому что ты уже проверил курсор, а раз он есть, значит selectAllDashboard вызывался
источник

W

WaterSmith in StartAndroid Ru Testing
Николай Казаков
В целом логика какая? Мокать все что используется в тестовом мсетоде?
В целом логика "мокать всё, что ты не тестируешь в данном тесте"
источник

W

WaterSmith in StartAndroid Ru Testing
и не тестировтаь чужой код
источник

НК

Николай Казаков in StartAndroid Ru Testing
WaterSmith
Затем в Before или прямо в тесте пиши:
when(mockedDb.selectAllDashboard()).thenReturn(mockedCursor);
и
when(mockedCursor.getCount()).thenReturn(200);
а проверить просто число записей в курсоре?
источник

НК

Николай Казаков in StartAndroid Ru Testing
или как?
источник

W

WaterSmith in StartAndroid Ru Testing
Тебе не надо тестить базу данных, её у тебя нет в тесте. ТЕбе надо тестить. как твой код поведет себя при разных ситуациях
источник

W

WaterSmith in StartAndroid Ru Testing
1. при случае когда в БД есть записи
источник

W

WaterSmith in StartAndroid Ru Testing
2. при случае когда 0 записей
источник

W

WaterSmith in StartAndroid Ru Testing
3. в странном случае, когда курсовр вдруг вернул отрицательное число
источник

W

WaterSmith in StartAndroid Ru Testing
поэтому ты не проверяешь число записей в курсоре, у тебя не настоящий курсор. Ты как бы подсовываешь своему коду фальшивый курсор, который вернет заведомо запланированные данные.
источник

W

WaterSmith in StartAndroid Ru Testing
Я может уже банальные очевидные вещи начал говорить, тогда остановите меня =)
источник

НК

Николай Казаков in StartAndroid Ru Testing
неее новичку в самый раз )) спасибо, что все разжевал
источник

НК

Николай Казаков in StartAndroid Ru Testing
а почему я не могу в конструкции when задать void метод?
источник

W

WaterSmith in StartAndroid Ru Testing
потому что конструкция when предназначена для того, чтобы подменить null который тебе вернет любой метод замоканного объекта, на нужное тебе значение
источник

W

WaterSmith in StartAndroid Ru Testing
поскольку void ничего не возращает, то и when для него смысла не имеет
источник

НК

Николай Казаков in StartAndroid Ru Testing
ок. еще одна проблема. в тесте я написал when(db.selectAllDashboard()).thenReturn(mockedCursor); далее выполняю действие, почему тест заходит в метод selectAllDashboard и пытается выполнить запрос к БД, почему просто не возвращается фиктивный курсор?
источник

W

WaterSmith in StartAndroid Ru Testing
Николай Казаков
ок. еще одна проблема. в тесте я написал when(db.selectAllDashboard()).thenReturn(mockedCursor); далее выполняю действие, почему тест заходит в метод selectAllDashboard и пытается выполнить запрос к БД, почему просто не возвращается фиктивный курсор?
на самом деле не должен пытаться
источник

W

WaterSmith in StartAndroid Ru Testing
а с чего ты взял что он пытается?
источник