2010-07-03 14 views

Respuesta

-1

Cada actividad es una subclase de contexto, por lo que debe utilizar sus actividades cuando se necesita Contexto. La clase Contexto no es algo que crea una instancia desde una aplicación.

+0

ah, Sory Soy la prueba JUnit aquí - pregunta actualizada – jax

+0

Luego use el método getActivity(). http://developer.android.com/reference/android/test/ActivityInstrumentationTestCase2.html#getActivity() – ognian

23

¿Qué hay de usar AndroidTestCase en lugar de una prueba JUnit? AndroidTestCase proporcionará un contexto con getContext() que se puede usar donde sea necesario.

+0

gracias ... funcionó –

+5

AndroidTestCase ahora está en desuso. – AndroidDev

1

probar esto por caso cuando su clase de prueba se extiende ActivityInstrumentationTestCase2:

InputStream is = null; 
try { 
    is = getInstrumentation().getContext().getAssets().open("your.file"); 
} catch (IOException e) { 
    Log.d("Error", "Error during file opening!!!"); 
} 
+0

La pregunta es solo acerca de obtener contexto no sobre abrir archivo de la carpeta de activos. – Swapnil

5

Otra forma de acceder contexto de JUnit sin extenderAndroidTestCase es utilizar Rule para poner en marcha una actividad que se está probando. Las reglas son interceptores que se ejecutan para cada método de prueba y se ejecutarán antes que cualquiera de su código de configuración en el método @Before. Las reglas se presentaron como un reemplazo para el ActivityInstrumentationTestCase2.

@RunWith(AndroidJUnit4.class) 
@SmallTest 
public class ConnectivityTest { 

    @Rule 
    public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class); 

    @Test 
    public void testIsConnected() throws Exception { 
     Context context = mActivityRule.getActivity().getBaseContext(); 
     ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     boolean connected = cm.getActiveNetworkInfo().isConnectedOrConnecting(); 
     Assert.assertEquals(connected, ConnectionUtils.isConnected(context)); 
    } 
} 
1

Si la prueba es una prueba de la instrumentación (que se ejecuta en el emulador o dispositivo), puede simplemente usar

Context appContext = InstrumentationRegistry.getTargetContext(); 

La dependencia es:

androidTestCompile 'com.android.support.test:runner:0.5' 
Cuestiones relacionadas