Для теста сценария расчёта скидки понадобился эмулятор
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
