Я пытаюсь проверить метод, который возвращает список перечислений, когда задан список строк.
это перечисление
enum class SupportedFeatures(val id: String) {
FEATURE_1("feature1"),
;
companion object {
fun getValueFromId(id: String): SupportedFeatures? {
values().forEach {
if (it.id == id) {
return it
}
}
return null
}
}
}
И это метод, который я пытаясь проверить
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
fun getFilteredList(from: List<String>): MutableList<SupportedFeatures> {
val to = mutableListOf<SupportedFeatures>()
from.forEach {
val supportedFeature = SupportedFeatures.getValueFromId(it)
if (supportedFeature != null) {
to.add(supportedFeature)
}
}
return to
}
Я могу довольно легко это проверить
featuresList.addAll(listOf("feature1", "feature2", "feature3"))
target = mutableListOf(SupportedFeatures.FEATURE_1)
Mockito.`when`(featureSelector.getFilteredList(featuresList)).thenReturn(target)
, но проблема в том, что я добавляю дополнительные функции в перечисление SupportedFeatures
. Если я добавлю FEATURE_2("feature2")
к перечислению, тест неожиданно провалится. Хотя это правда, что тест должен провалиться, но я хочу проверить функциональность метода, не завися от текущей бизнес-логики c.
Есть ли способ высказать перечисление SupportedFeatures
в тесте учебный класс? или я как-то не разделяю методы на более мелкие части?
Заранее спасибо!