halte ich die folgende Fehlermeldung erhalten, wenn meine Espresso-Tests ausgeführt werden:Kann nicht Application in Espresso bekommen testet
Attempt to invoke virtual method 'android.content.Context android.app.Instrumentation.getTargetContext()' on a null object reference
@RunWith(AndroidJUnit4.class)
public class TestLogin extends AndroidTestCase {
@Rule
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class);
@Test
public void testVerifyCredentials() {
Context context = this.getContext().getApplicationContext();
SharedPreferences prefs = context.getSharedPreferences("current.user", Context.MODE_PRIVATE);
assertTrue(prefs.getBoolean("IsLoggedIn", false));
}
}
ich bereits versucht, dies als InstrumentationTestCase
, und dann versucht, stattdessen Context context = this.getInstrumentation().getTargetContext().getApplicationContext();
zu tun aber das führt immer noch zur NPE.
Was mache ich falsch?
Die SessionManager
Klasse I in meiner Anwendung bin mit SharedPrefs zu verwalten:
Paket com.nullpointexecutioners.buzzfilms.helpers;
importieren android.content.Context; importieren android.content.SharedPreferences;
importieren com.firebase.client.Firebase; importieren com.nullpointexecutioners.buzzfilms.Major;
Wenn er nur SharedPrefs verwenden möchte, versucht dieser Code, die Aktivität zu starten. Es ist besser, InstrumentationRegistry.getInstrumentation() zu verwenden. GetTargetContext(). – Siamaster