Вступить в клуб →
средняявопросMVVM, MVI и многомодульность

Для теста сценария расчёта скидки понадобился эмулятор

class ApplyPromoUseCase(private val context: Context, private val repo: PromoRepository) {
    suspend operator fun invoke(code: String): PromoResult {
        val promo = repo.find(code)
            ?: return PromoResult.Error(context.getString(R.string.promo_not_found))
        return PromoResult.Applied(promo.percent)
    }
}

Юнит-тест на JVM падает на getString. Команда хочет вынести доменный слой в отдельный модуль. Как его устроить?

  • Чистый Kotlin-модуль, текст ошибки выбирает UI
  • Android-модуль с Robolectric для всех тестов
  • Передавать в UseCase Application вместо Context
  • Хранить тексты ошибок константами в UseCase

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела