He intentado hacer un caso de prueba extendiendo intstrumentationtestcase, y cada vez que llamo a getinstrumentation() devuelve una instancia nula de Instrumentation en lugar de una instrumentación, representando cualquiera de la automatización Estoy queriendo hacer algo inútil. También tengo el permiso establecido en el manifiesto, aunque solo estoy probando la automatización en la misma aplicación en la que se ejecutará este caso ... ¿alguna idea?android instrumentation test case - getinstrumentation() return null
Respuesta
Tuve un problema similar y parece que el método getInstrumentation() devuelve una instrumentación válida solo después de que se llama al método setUp de la clase base (InstrumentationTestCase). Por favor, mira el código de abajo y comprobar los mensajes de depuración LogCat:
import android.app.Instrumentation;
import android.test.InstrumentationTestCase;
import android.util.Log;
public class TestInstrumentation extends InstrumentationTestCase {
private static final String LOG_TAG = BrowseLocationsTest.class.getSimpleName();
private Instrumentation instr;
public TestInstrumentation() {
instr = getInstrumentation();
Log.d(LOG_TAG, "TestInstrumentation instrumentation: " + instr);
}
@Override
protected void setUp() throws Exception {
instr = getInstrumentation();
Log.d(LOG_TAG, "setUp instrumentation: " + instr);
super.setUp();
instr = getInstrumentation();
Log.d(LOG_TAG, "setUp instrumentation: " + instr);
}
public void testInstrumentation() {
Log.d(LOG_TAG, "testInstrumentation instrumentation: " + instr);
}
}
La instrumentación es correcto en el lugar correcto como se esperaba después de la llamada super.setUp().
Usted necesita inyectar la instrumentación de programación llamando injectInstrumentation(InstrumentationRegistry.getInstrumentation());
usando InstrumentationRegistry
de la oficial de Android de pruebas-support-lib: 0,1
Creo que lo que realmente necesita es Contexto, en junit4, podemos obtener el contexto de InstrumentationRegistry.getContext();
Tuve el mismo problema al usar Testing Support Library con la anotación '@RunWith (AndroidJUnit4.class)', aunque me aseguré de inyectar mi instrumentación en el método setUp()
como lo indican @Gallal y @Dariusz Gadomski, solo que continuó lanzando NullPointerExceptions.
Resulta que olvidé incluir la anotación @Before
en mi método de configuración, por lo que jUnit4 no lo ejecutó, mientras que antes con las pruebas de Instrumentación basadas en jUnit3, se habría ejecutado. Desde que implementé la inyección de instrumentación en setUp(), nunca se inyectó aunque el código parecía que debería haberlo inyectado.
Así que en lugar de
@Override
protected void setUp() throws Exception {
...
Asegúrese de utilizar
@Before
public void setUp() throws Exception {
super.setUp();
injectInstrumentation(InstrumentationRegistry.getInstrumentation());
}
lugar.
- 1. Complemento de Android Eclipse: Instrumentation Test Runner no especificado
- 2. Android Test Case: cómo ver la salida?
- 3. claimsResponse Return Null
- 4. Log4j en JUnit Test case
- 5. Type.GetType return null
- 6. FindName return null
- 7. NSFileHandle fileHandleForWritingAtPath: return null!
- 8. RingtoneManager return null ringtone
- 9. Type.GetType() return null
- 10. List Intersect return null
- 11. Consulta de mangosta return null
- 12. Selenium Test Case vs. Test Suite frente a uso general
- 13. Por qué Images.Media.insertImage return null
- 14. HttpServletRequest request = this.getThreadLocalRequest() return null?
- 15. Singleton y @Autowired return NULL
- 16. ¿En qué situación sería document.open() return null?
- 17. En caso de que una función use: return null ;?
- 18. Android case statement help
- 19. enviar parámetros de test suite a test case en junit 4
- 20. android - sharedpreferences return value nulo
- 21. Utilizando Test Framework Android
- 22. android test fixtures
- 23. Android grow heap frag case
- 24. Primer Android Test Project no se inicia
- 25. sql join return null si no se encuentra el valor
- 26. JAXB return null en su lugar serie vacía
- 27. ConfigurationManager return null en lugar de valores de cadena
- 28. SET variable definida por el usuario en mysql return null?
- 29. ViewBag return null en la clase de extensión
- 30. stringWithContentsOfFile e initWithContentsOfFile return null después de varias ejecuciones