Esto tiene que ver con el uso del framework Robolectric para probar unidades en android. Obtengo una excepción de puntero nulo en el código que no tiene ningún problema cuando se ejecuta normalmente. Estoy comenzando con el roboeléctrico, por lo que es bastante simple.Android/Robolectric frame work - La actividad instanciada devuelve null en getResource
Aquí está el código de llamada para las pruebas:
@Test
public void testInitUtilsInitSequenceNumberIsRandom() {
// create an activity for reference
InitUtils initUtils = new InitUtils();
// do static initialization to parse questions into memory
InitUtils.initialize(initUtils); // <============ the call from roboelectric framework
// retreive app state
AppState appState = (AppState) initUtils.getApplicationContext();
// fill in later
fail("not implemented");
}
Aquí es el método llamado dentro de la cual se estrella InitUtils
/** * Carga el XML en la {} mQuestions @see miembro de la clase variables * */
public static void initializeQuestions(Activity activity, AppState appState) {
/* create XML Parser */
XmlResourceParser questionBatch;
/* local question variable */
Question question = null;
/* retrieve the XML for parsing */
// =============== This returns null ==============================
questionBatch = activity.getResources().getXml(R.xml.questions);
/* Parse the XML */
int eventType = -1;
/* iterate through XML */
while (eventType != XmlResourceParser.END_DOCUMENT) {
if (eventType == XmlResourceParser.START_TAG) {
/* Get the questions */
// ================================= NPE exception ======================
String strName = questionBatch.getName();
...etc
¿hay algo especial que tengo que hacer para este para recuperar el recurso?
Qué línea fue que se estrella en? – jlindenbaum
@Jack BenNimble ¿qué dice LogCat aquí? – Herry