Size: a a a

StartAndroid Ru Testing

2018 August 07

НК

Николай Казаков in StartAndroid Ru Testing
хочу проверить вызывался ли метод selectAllDashboard
источник

НК

Николай Казаков in StartAndroid Ru Testing
получаю ошибку Method getWritableDatabase in android.database.sqlite.SQLiteOpenHelper not mocked.
источник

W

WaterSmith in StartAndroid Ru Testing
Николай Казаков
хочу проверить вызывался ли метод selectAllDashboard
ну, тут нужно мокнуть db, и с помощью мокиты проверить
источник

W

WaterSmith in StartAndroid Ru Testing
о чем тебе ошибка и говорит
источник

W

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

НК

Николай Казаков in StartAndroid Ru Testing
db я мокнул, все равно ошибка
источник

НК

Николай Казаков in StartAndroid Ru Testing
db = Mockito.mock(DB.class);
источник

НК

Николай Казаков in StartAndroid Ru Testing
@Test
 public void checkInfoDashboard() {
   testApp.checkInfoDashboard();

   Mockito.verify(db).selectAllDashboard();
 }
источник

W

WaterSmith in StartAndroid Ru Testing
на нулл должно ругаться
источник

НК

Николай Казаков in StartAndroid Ru Testing
java.lang.RuntimeException: Method getWritableDatabase in android.database.sqlite.SQLiteOpenHelper not mocked
источник

W

WaterSmith in StartAndroid Ru Testing
ты не замокал SQLiteOpenHelper
источник

W

WaterSmith in StartAndroid Ru Testing
я так понимаю DB это у тебя он и есть
источник

НК

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

W

WaterSmith in StartAndroid Ru Testing
и пользуйся аннотациями
источник

НК

Николай Казаков in StartAndroid Ru Testing
ок, почитать бы про них еще
источник

W

WaterSmith in StartAndroid Ru Testing
делаей так. Перед тестовым классом пиши:
@RunWith(MockitoJUnitRunner.class)
источник

W

WaterSmith in StartAndroid Ru Testing
затем объявляй поля класса:
@Mock
SQLiteOpenHelper mockedDb;
@Mock
Cursor mockedCursor;
источник

НК

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

W

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

W

WaterSmith in StartAndroid Ru Testing
Это для случая когда число записей больше 0
источник