title: Instrumental test for Realm database gives "Call 'Realm.init(Context)' before creating Realmconfiguration" even though I call it
body: <p>For my Android application I use the Realm mobile database. I want to write tests for this, and the best way I found of testing was using instrumental tests. </p>
  
  <p>This is the constructor of my database class:</p>
  
  <pre><code>public Database(Context context) {
      this.context = context.getApplicationContext();
  
      Realm.init(context);
  
      RealmConfiguration realmConfig = new RealmConfiguration.Builder()
              .name("com.arnowouter.badger.realmdatabase") // TODO: 4/10/2016 check if encryptable
              .build();
  
      realm = Realm.getInstance(realmConfig);
  }
  </code></pre>
  
  <p>As you can see, Realm.init(context) is called. But when I run this test:</p>
  
  <pre><code>@RunWith(AndroidJUnit4.class)
  @MediumTest
  public class DatabaseTest {
  
      Database database;
      Context context;
  
      @Before
      public void setupDatabase() {
          context = InstrumentationRegistry.getContext();
          database = new Database(context);
      }
  }
  </code></pre>
  
  <p>I get this error:</p>
  
  <pre><code>java.lang.IllegalStateException: Call `Realm.init(Context)` before creating a RealmConfiguration
          at io.realm.RealmConfiguration$Builder.&lt;init&gt;(RealmConfiguration.java:399)
          at io.realm.RealmConfiguration$Builder.&lt;init&gt;(RealmConfiguration.java:394)
          at com.arnowouter.badger.Database.Database.&lt;init&gt;(Database.java:38)
          at com.arnowouter.badger.DatabaseTest.setupDatabase(DatabaseTest.java:27)
          at java.lang.reflect.Method.invoke(Native Method)
          at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
          at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
          at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
          at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
          at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
          at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
          at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
          at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
          at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
          at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
          at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
          at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
          at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
          at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
          at org.junit.runners.Suite.runChild(Suite.java:128)
          at org.junit.runners.Suite.runChild(Suite.java:27)
          at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
          at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
          at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
          at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
          at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
          at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
          at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
          at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
          at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:59)
          at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:262)
          at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1970)
  </code></pre>