«Классы с зависимостями Android не поддаются тестированию», по-видимому, имеют довольно специфическое значение.
Возьмите классическое задание или фрагмент. Часто существует большая зависимость от TextView
, LayoutManager
и т. Д. Практически невозможно заглушить поведение для каждой отдельной зависимости, чтобы выполнить какой-либо разумный модульный тест. Обратите внимание, что зависимости TextView
и т. Д. Являются классами android.*
, которые включены в среду выполнения устройства под управлением Android (т. Е. Вашего телефона).
Плохо спроектированные классы Presenter и ViewModel также могут иметь эту проблему. Например, если Presenter или ViewModel получают зависимость от контекста, будет трудно поместить их в тестовую систему, так как класс контекста android.*
трудно подделать.
Однако эта директива не обязательно применяется к классам android.arch.*
. Они не включены в среду выполнения Android на телефоне и разработаны таким образом, чтобы облегчить тестирование. Таким образом, в приведенном вами примере, кажется, нет ошибки при включении их в класс, предназначенный для модульного тестирования.