Android - простая переменная mockito stub (не метод) - PullRequest
0 голосов
/ 17 марта 2020

У меня есть класс с несколькими переменными внутри.

SomeViewModel имеет логическую переменную по умолчанию false,

var booleanVariable = false

SomeViewModel зависит от SomeDataModel,

var dataModel: SomeDataModel? = null

Класс теста

@RunWith(MockitoJUnitRunner::class)
class TestClass {

  @Mock lateinit var someViewModel: SomeViewModel
  @Mock lateinit var someDataModel: SomeDataModel

  @Before
  fun setup() {
    when(someViewModel.booleanVariable).thenReturn(true)
    when(someViewModel.dataModel).thenReturn(someDataModel)
  }

  @Test
  fun shouldShowImportPolicyTest() {
    someViewModel.booleanVariable // return FALSE, not true as stubbed
    someViewModel.dataModel // always returns NULL
  }
}

Если я заглушу метод, он работает нормально. что я тут не так делаю?

1 Ответ

0 голосов
/ 17 марта 2020

Вы можете смоделировать переменные-члены, если они не являются окончательными с Mockito.

У вас есть 3 варианта здесь:

  1. сделать их open
  2. использовать Зависимость mockito-inline, позволяющая проверять окончательные классы / поля
  3. , с помощью плагина компилятора Kotlin all-open сделать класс и его поля open в тестах (https://kotlinlang.org/docs/reference/compiler-plugins.html)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...