Как мне дождаться выполнение асинхронного метода?
Есть такой метод Server.getData(DataListener listener);
Данные загружаются в отдельном потоке, и по завершению передаются в DataListener. И все вроде бы хорошо, но я решил написать тесты к этому коду. Код JUnit Теста
@Test
public void getDataTest(){
Server.getData(new DataListener(){
@Override
onSuccess(String data){
assertNotEquals(data,"");
}
});
}
Тест будет пройден, не дожидаясь ответа от сервера и выполнение метода onSuccess(), как мне заблокировать метод Server.getData(), чтобы дождаться выполния onSuccess? Решение с execute() в Retrofit не подойдет
Нашел решение, достаточно просто использовать CountDownLatch
@Test
public void getDataTest(){
CountDownLatch latch = new CountDownLatch(1);
Server.getData(new DataListener(){
@Override
onSuccess(String data){
assertNotEquals(data,"");
latch.countDown();
}
});
try {
latch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Здесь на странице регистрации я хочу передать допустим имя в следующее окно вот так:
возникла необходимость создать сетку по типу "водопад", но самый первый элемент должен занимать две колонки (все остальные элементы...
У меня есть div с примененной к нему маскойЯ заметил, что я не могу применить box-shadow к тому же самому div, поэтому я должен переместить тень на wrapper...