#android #rx-java #rx-java2 #android-room
#Android #rx-java #rx-java2 #android-room
Вопрос:
Мой запрос Room (из MyObjectDao) с Flowable<List<MyObject>>
возвращается List<List<MyObject>>
при запуске тестов. Вот запрос:
@Query("SELECT * FROM myobjects")
Flowable<List<MyObject>> getAllMyObjects();
Вот как я извлекаю первый MyObject из запроса:
MyObject toDelete = myObjectDao.getAllMyObjects().test().values().get(0).get(0);
Как вы можете видеть, я получаю List<List<MyObject>>
из запроса? Почему это? Почему он помещается в другой список?
Ответ №1:
values()
возвращает все выбросы, полученные за время жизни вашего Flowable
. Поскольку каждое ваше излучение Flowable
является List
, values()
вернет список всех y наших выбросов списков.
Комментарии:
1. Спасибо, теперь это имеет смысл. Есть ли у вас какие-либо предложения о том, как протестировать мой Flowable, если у него будет только 1 излучение (или если я знаю общее количество)? Нормально ли я это делаю?
2. Вы все еще можете использовать его, просто подтвердите, что это
valueCount()
есть1
(или что бы вы ни ожидали от количества выбросов), прежде чем делать что-либо еще3. Хорошо, я понимаю. Еще раз спасибо за помощь, высоко ценится.