Size: a a a

Moxy – MVP библиотека под Android

2019 March 02

DU

Dima Ulko in Moxy – MVP библиотека под Android
та неа, вчера такая же ситуация била ...
источник
2019 March 03

FL

First Last in Moxy – MVP библиотека под Android
Так это продолжение
источник

YA

Yaroslav Alekseev in Moxy – MVP библиотека под Android
Всем привет! Пишу unit тест презентера в многомодульном проекте. Получаю noClassDefFoundError, т.к. MoxyReflector не сгенерировался, что понятно, т.к. moxy аннотаций в тестах нет. Было предложение создать его самому, но, по моему, этот способ выглядит костыльно.
Есть какое-то общепринятое решение данной проблемы?
источник

AB

Alexander Blinov in Moxy – MVP библиотека под Android
Yaroslav Alekseev
Всем привет! Пишу unit тест презентера в многомодульном проекте. Получаю noClassDefFoundError, т.к. MoxyReflector не сгенерировался, что понятно, т.к. moxy аннотаций в тестах нет. Было предложение создать его самому, но, по моему, этот способ выглядит костыльно.
Есть какое-то общепринятое решение данной проблемы?
А попробовали написать рефлектор вручную для теста?
источник

YA

Yaroslav Alekseev in Moxy – MVP библиотека под Android
Alexander Blinov
А попробовали написать рефлектор вручную для теста?
Я скопировал сгенерированный MoxyReflector в test/java/com/arellomobile/mvp, После чего появилось noSuchMethodError, добавил туда метод getViewState, чтобы убрать исключение. После этого появилось classCastException: reflector cannot be cast to MvpView, которое не решилось имплементацией рефлектором MvpView. На этом месте я и остановился.
источник

VS

Volodymyr Stelmashchuk in Moxy – MVP библиотека под Android
@YaLex17 вы как-то неправильно пишете тесты, unit тест не должен тестировать билиотеку
источник
2019 March 04

YA

Yaroslav Alekseev in Moxy – MVP библиотека под Android
Volodymyr Stelmashchuk
@YaLex17 вы как-то неправильно пишете тесты, unit тест не должен тестировать билиотеку
Мне нужно проверить, что при вызове метода презентера, будут вызваны определенные методы view. Я бы и рад абстрагироваться от библиотеки в данном случае, но презентеру требуется рефлектор.
источник

АЕ

Алексей Ершов in Moxy – MVP библиотека под Android
Yaroslav Alekseev
Мне нужно проверить, что при вызове метода презентера, будут вызваны определенные методы view. Я бы и рад абстрагироваться от библиотеки в данном случае, но презентеру требуется рефлектор.
Зачем? Берёте презентер, аттачите ему мок-реализацию View, проверяете на ней вызовы
источник

YA

Yaroslav Alekseev in Moxy – MVP библиотека под Android
Алексей Ершов
Зачем? Берёте презентер, аттачите ему мок-реализацию View, проверяете на ней вызовы
Да, раньше я так и делал. До того, как добавили рефлектор. Сейчас, при таком способе получаю noClassDefFoundError MoxyReflector
источник

VS

Volodymyr Stelmashchuk in Moxy – MVP библиотека под Android
а можно gist с примером кода?
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Yaroslav Alekseev
Да, раньше я так и делал. До того, как добавили рефлектор. Сейчас, при таком способе получаю noClassDefFoundError MoxyReflector
Это очень странная ситуация. Рефлектор используется только если вы инжектите View в презентер автоматически при помощи MvpDelegate. Если вы руками создадите инстанс презентера и вью и сами сделаете attachView, всё должно пройти как по маслу
источник

YA

Yaroslav Alekseev in Moxy – MVP библиотека под Android
Ilya Gulya
Это очень странная ситуация. Рефлектор используется только если вы инжектите View в презентер автоматически при помощи MvpDelegate. Если вы руками создадите инстанс презентера и вью и сами сделаете attachView, всё должно пройти как по маслу
Что-то я совсем забыл про версии. Сейчас решил потестить на разных версиях: Эта проблема присутствует в Moxy 1.5.3. На 1.5.2 тесты проходят без проблем. Поменял версию на 1.5.5 появилась другая ошибка - cannot find symbol variable viewStateProvider
источник

YA

Yaroslav Alekseev in Moxy – MVP библиотека под Android
Volodymyr Stelmashchuk
а можно gist с примером кода?
Сейчас, к сожалению, нет возможности - доберусь до компьютера только вечером. Но там все просто: val presenter = Presenter(mockInteractor) presenter.attachView(mockView). Никаких аннотаций, ничего дополнительного. Ну и к тому же, как я уже написал выше, на 1.5.2 все тесты проходят успешно.
источник

IS

Ilya Smirnov in Moxy – MVP библиотека под Android
Пишу абсолютно также тесты на 1.5.3 и все ок. Кто-то что-то не договаривает...
Модули есть? Kapt настроен на moxyReflectorPackage? В application классе пакеты в RegisterMoxyReflectorPackages прописаны?
источник
2019 March 05

YA

Yaroslav Alekseev in Moxy – MVP библиотека под Android
Ilya Smirnov
Пишу абсолютно также тесты на 1.5.3 и все ок. Кто-то что-то не договаривает...
Модули есть? Kapt настроен на moxyReflectorPackage? В application классе пакеты в RegisterMoxyReflectorPackages прописаны?
Проект многомодульный. Выложил gist: https://gist.github.com/Lex1717/4a9d9ee55bc7f95499ee257935744562
источник

SV

Sergey Vasilchenko in Moxy – MVP библиотека под Android
moxyReflectorPackage для капта должен быть задан в каждом модуле, в котором мокси есть, у вас только в одном
источник

YA

Yaroslav Alekseev in Moxy – MVP библиотека под Android
Sergey Vasilchenko
moxyReflectorPackage для капта должен быть задан в каждом модуле, в котором мокси есть, у вас только в одном
MoxyReflectorPackage у меня задан в двух модулях - puzzler и profile. Больше Мокси нигде не используется.
источник

SV

Sergey Vasilchenko in Moxy – MVP библиотека под Android
в гисте для капта указан только в PuzzlerBuild.gradle
источник

SV

Sergey Vasilchenko in Moxy – MVP библиотека под Android
в CoreBuild.gradle видимо тоже надо задать)
источник

YA

Yaroslav Alekseev in Moxy – MVP библиотека под Android
Sergey Vasilchenko
в CoreBuild.gradle видимо тоже надо задать)
В coreBuild от Мокси только транзитивные зависимости. При попытке добавить туда moxyRefPac при сборке проекта выдает cannot find symbol class MoxyReflector, т.к. в core не спользуется Мокси, нет аннотаций.
источник