Использование JUnit4 Test Runner, тестовые трассы и, кажется, работает, но запрос не возвращает результаты:Проблема с Realm Unit Test на Android
@RunWith(AndroidJUnit4::class)
class LocationViewInstrumentationTest {
@Rule
public val mActivityRule: ActivityTestRule<MapsActivity> = ActivityTestRule(MapsActivity::class.java)
@Rule
var testFolder = TemporaryFolder()
@Test
fun mapViewIsRendered() {
onView(withId(R.id.map)).check(matches(isDisplayed()))
}
@Test
@Throws(IOException::class)
fun canSaveLocation() {
val tempFolder = testFolder.newFolder("realmdata")
val config = RealmConfiguration.Builder(tempFolder).build()
val realm = Realm.getInstance(config)
realm.beginTransaction()
val location = Location("Poppy Manor", 33.2, -121.3, 0.0)
assertThat(location, not(nullValue()))
realm.commitTransaction()
RealmQuery<Location> query = realm.where(Location.class);
RealmResults<Location> results = query.findAll();
assertThat(results.size(), equalTo(1));
}
Да, я посмотрел на примере проекта, но не хотят добавьте все зависимости и хотите, чтобы мои тесты были удобочитаемыми, поэтому старайтесь избегать всех издевательств.
Вы не писали в Царство в транзакции. Попробуйте добавить 'realm.copyToRealm (location)' перед 'realm.commitTransaction()'. – beeender
Почему вы не ответили на это? Я использовал Realm в Swift, просто перешел на андроид и не видел этих вызовов. Я видел этот метод, но думал, что это для повторной синхронизации с сеансом. Благодаря! – Rob
Да, добавьте ответ. ура! – beeender