UnitTest - проверенный метод всегда возвращает пустую карту - PullRequest
0 голосов
/ 17 мая 2019

Я пишу Unit Test для простого метода, который должен возвращать карту с элементами, но каждый раз, когда карты возвращают 0 элементов.

Тест в Котлине

@Test
fun `convertToMap`() {
  val items = listOf(Item(ID, false))
  val map = viewModel.convertToMap(items)
  assertThat(map[ID]).isFalse()
}

Этот тест не пройден, поскольку на карте нет элементов.

Код находится на Java

public Map<String, Boolean> convertToMap(List<Item> items) {
  Map<String, Boolean> itemsMap = new ArrayMap<>();
  for (Item item: items) {
    itemsMap.put(item.getId(), item.isEnabled());
  }
  return itemsMap;
} 

List<Item> items содержит item, это не null, getId() возвращает значение, так же как isEnabled(),

Я отлаживал метод, каждый из которых не увеличивал размер карты.(элементы не добавляются на карту)

зависимости, добавленные для тестов:

testImplementation 'junit:junit:4.12'
testImplementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
testImplementation "org.mockito:mockito-core:${mockito_core}"
testImplementation "org.mockito:mockito-inline:${mockito_kotlin_inline}"
testImplementation "org.robolectric:robolectric:${robolectric}"
testImplementation "com.google.truth:truth:${google_truth}"
testImplementation "org.jetbrains.kotlin:kotlin-test-junit:${kotlin_version}"

edit: просто чтобы прояснить, convertToMap() работает при запуске в стандартной среде.

1 Ответ

0 голосов
/ 17 мая 2019

изменить с

import android.util.ArrayMap; 

на:

android.support.v4.util.ArrayMap;

исправлена ​​проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...