Раньше я работал в MVP, и я обычно тестировал своих докладчиков, используя простой Junit (Not Instrumentation!), Поскольку докладчики имеют только бизнес-логику и никаких ссылок на внутренние элементы Android вообще.Android plain Junit with Dagger 2
Теперь, переключившись на кинжал 2, я понял, что у меня возникла проблема с настройкой «TestModule» для моего компонента приложения.
- Создание компонента не будет работать внутри тестового класса (возможно, потому, что «кв» не работает там)
- Не нашли каких-либо примеров для использования Dagger с помощью стандартного тестирования JUnit. Каждый пример, который я нашел, основывается только на контрольно-измерительных тестах или Roboelectric (которые в основном издеваются над действиями и другими предметами, связанными с Android), но для меня это всего лишь тестирование пользовательского интерфейса, и мне это не нужно.
Просто для того, чтобы все было ясно, я говорю о тестах, которые находятся в папке test-> src-> test, а не app-> src-> androidTest!
Так что я делаю что-то неправильно? Или что-то не хватает? Может ли кто-нибудь объяснить или дать примеры того, как использовать Dagger 2 в обычных модульных тестах?
Пробовал уже. Он не компилируется, когда вы пытаетесь вызвать DaggerMockInjectionComponent.builder() ... Он говорит: «... Ошибка: (41, 54) ошибка: не удается найти метод построения знака() ...» Вот ссылка Github: https : //github.com/ivelius/BitcoinGraph/blob/4b9080229f9a2f9c5362b4930bab3dcb979e9e08/app/src/test/java/com/example/yanbraslavski/bitcoingraph/MainPresenterTest.java#L43 – Ivelius
@Ivelius Он должен быть добавлен с кинжалом, поэтому DaggerMockAppComponent затем сделает ваш проект, который Dagger может сгенерировать файл, и он предложит вам импортировать его. –
Да, конечно, была просто опечатка. Я исправил ошибку. он все тот же ... Не компилируется. Вы можете проверить этот небольшой тестовый проект и убедиться сами ... https://github.com/ivelius/BitcoinGraph/blob/DaggerTests/app/src/test/java/com/example/yanbraslavski/bitcoingraph/MainPresenterTest. java – Ivelius