«Неразрешенная ссылка: пара» с использованием Kotlin с Robolectric
Я попытался добавить Robolectric в проект, который использует android.util.Pair
, чтобы я мог выполнить модульное тестирование связанных классов. Проект находится в Java, но модульные тесты все (пока) в Kotlin.
Когда я пытаюсь запустить модульные тесты, я получаю сообщение об ошибке:
:app:createMockableJar UP-TO-DATE
e: E:\...\TestK.kt: (3, 21): Unresolved reference: Pair
e: E:\...\TestK.kt: (12, 17): Unresolved reference: Pair
:app:compileDebugUnitTestKotlin FAILED
Я создал простой тестовый пример:
import android.util.Pair
import org.junit.Assert.assertEquals
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
@RunWith(RobolectricTestRunner::class)
class TestK {
@org.junit.Test
fun testk() {
val p = Pair.create("Foo", "Bar")
assertEquals("Foo", p.first)
assertEquals("Bar", p.second)
}
}
Это приводит к ошибке, но если я создаю тот же тест в Java, он работает нормально:
import android.util.Pair;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import static org.junit.Assert.assertEquals;
@RunWith(RobolectricTestRunner.class)
public class Test
{
@org.junit.Test
public void test()
{
Pair<String, String> p = Pair.create("Foo", "Bar");
assertEquals("Foo", p.first);
assertEquals("Bar", p.second);
}
}
Есть идеи, что может быть не так?
мой файл gradle имеет следующие deps:
apply plugin: 'com.android.application'
apply plugin: "kotlin-android"
... stuff ...
testImplementation 'junit:junit:4.12'
testImplementation "org.robolectric:robolectric:4.0.1"
А я пользуюсь Kotlin 1.3