2016-04-19 6 views
1

Ich habe einen einfachen Testfall zum Testen von Realm db geschrieben. Aber ich bin immer Fehler immerSo führen Sie Unit-Test in Realm Db mit Roboelectric

java.lang.UnsatisfiedLinkError: Can't load library: /tmp/android-tmp-robolectric4167396756480823821/app_lib/librealm-jni.so 

Dies ist mein Test

import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.robolectric.RobolectricTestRunner; 
import org.robolectric.RuntimeEnvironment; 
import io.realm.Realm; 

@RunWith(RobolectricTestRunner.class) 
public class RealmTest { 

@Test 
public void realmShouldWork() { 
    Realm realm = Realm.getInstance(RuntimeEnvironment.application.getApplicationContext()); 
} 
} 

Ich gründe die Realm config in der Application-Klasse auf. Und im normalen Laufmodus funktioniert es gut. Problem ist nur im Testmodus. Ich bin nicht in Lage, die Realm db-Instanz im Testmodus zu initiieren.

Antwort

2

Realm nicht unterstützt Robolectric noch: https://github.com/realm/realm-java/issues/904

Aber wenn Sie Realm Stub wollen heraus Robolectric verwenden Sie können sehen, wie in unserem Unit-Test-Beispiel hier: https://github.com/realm/realm-java/tree/master/examples/unitTestExample

+1

Ich bekomme den gleichen Fehler, obwohl ich das UnitTestExample auf GitHub folgte. Ich bekomme diesen Fehler auch in Testklassen, in denen Realm nie verwendet oder enthalten ist. – FreshD

0

Vor negativen Stimmen beklagen ist kein Code, um dein Problem zu lösen oder nicht genügend Informationen, falls der Link eines Tages nicht mehr da ist. Ich habe eine Bibliothek geschrieben, um das Testen von Realm mit PowerMockito zu unterstützen. Bitte sehen Sie die Bibliothek, wie es Ihnen helfen kann, Ihre Tests https://github.com/juanmendez/Mocking-Realm durchzuführen. Sie werden finden, wie Sie es mit einfachen Tests oder mit Robolectric verwenden, wenn Sie zum Wiki gehen. Es wurde getestet mit Realm 3.0, aber Sie können es mit der neuesten Version verwenden, wenn sich etwas nicht wesentlich geändert hat, können Sie mich wissen lassen. Vielen Dank.