Mit den JUnit4 Test-Runner, die Testläufen und scheint zu funktionieren, aber die Abfrage gibt keine Ergebnisse:Ausgabe mit Realm Unit Test auf 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));
}
Ja ich am Beispiel Projekt gesucht, aber will nicht füge alle Abhängigkeiten hinzu und möchte, dass meine Tests lesbar sind, um so alle Mocks zu vermeiden.
Sie haben in der Transaktion nicht an das Realm geschrieben. Versuchen Sie, 'realm.copyToRealm (location)' vor 'realm.commitTransaction()' hinzuzufügen. – beeender
Warum hast du das nicht als Antwort eingegeben? Ich habe Realm in Swift benutzt, bin gerade zum Android gegangen und habe diese Anrufe nicht gesehen. Ich sah diese Methode, dachte aber, dass sie für das Resyncing mit der Sitzung gedacht war. Vielen Dank! – Rob
Ja, füge die Antwort hinzu. Prost! – beeender