Тест для Android в котлинском царстве

Как можно сделать простой тест базы данных в реальном времени в Android, реализующей тест в Котлине?

Я попытался адаптировать фрагмент из теста java realm на github к kotlin и получил следующий код:

import io.realm.Realm import io.realm.log.RealmLog import org.hamcrest.CoreMatchers import org.junit.Assert import org.junit.Test import org.junit.Before import org.junit.Rule import org.mockito.Mockito.`when` import org.powermock.api.mockito.PowerMockito import org.powermock.modules.junit4.rule.PowerMockRule class DBTest { @Rule var rule = PowerMockRule() lateinit internal var mockRealm: Realm @Before fun setup() { PowerMockito.mockStatic(RealmLog::class.java) PowerMockito.mockStatic(Realm::class.java) val mockRealm = PowerMockito.mock(Realm::class.java) `when`(Realm.getDefaultInstance()).thenReturn(mockRealm) this.mockRealm = mockRealm } @Test fun shouldBeAbleToGetDefaultInstance() { Assert.assertThat(Realm.getDefaultInstance(), CoreMatchers.`is`(mockRealm)) } } 

Но когда я выполняю тест, я получаю:

 org.junit.internal.runners.rules.ValidationError: The @Rule 'rule' must be public. 

Вы можете сделать так, чтобы получатель правила выглядел так:

 @get: Rule var rule = PowerMockRule() 

Или вы можете пометить его как поле стиля Java с @JvmField аннотации @JvmField :

 @JvmField @Rule var rule = PowerMockRule() 

Вы можете найти более подробную информацию в этом ответе: https://stackoverflow.com/a/32827600/4465208

Ps. Вы также должны подумать о том, чтобы сделать его val если вы не собираетесь изменять его значение где угодно.

Realm java 4.1.0 был выпущен, и основная проблема Realm с Kotlin решена! , Вы можете протестировать мой примерный проект, чтобы увидеть, как вы должны конфигурировать проект или создавать классы. Мой образец предназначен для тестирования модуля в Realm object Server с kotlin.

Intereting Posts
Плагин не нашел ошибок градиента в автоматизированной сборке Android Android-kotlin-binding не обновляет свойства Сценарий тестового сценария с колллинским обратным вызовом лямбда Котлин: вторичный конструктор с этим ключевым словом Как сделать сумму элементов для нескольких списков в kotlin kotlin retrofit-Background sticky concurrent mark sweep GC освобожден 65326 (1448KB) Объекты AllocSpace, 62 (1736KB) Объекты LOS, Вывод типичного типа Карты в Котлин Перенос файлов Java в Kotlin в Android Studio Использовать аргумент, переданный, когда в состоянии филиала в Котлин? MyObjectBox не генерируется в kotlin (библиотека объектов) Все возможные комбинации из двух списков Является ли идиоматичным всегда предпочтение свойствам над полями поддержки? динамический dsl с использованием kotlin с поддержкой контента Ожидаемый однобоковый бит, но найден 3: objectMapper, halObjectMapper, _halObjectMapper в junitTest SpringMVC RequestMapping: добавление xml к пути контроллера для ответа xml