2015-10-28 24 views
6

Non riesco a capire perché i miei casi di test non riescono a essere eseguiti fino al completamento. Sono confuso perché l'errore sembra mostrare semplicemente che un'asserzione è fallita. Ciò significa che il test sta fallendo, ma perché questo dovrebbe causare l'arresto dell'intero runner del test?Esecuzione strumentazione Android non riuscita - errore di asserzione

Sto vedendo questo errore nella console.

Test failed to run to completion. Reason: 'Instrumentation run failed due to 'junit.framework.AssertionFailedError''. Check device logcat for details

Ed ecco la traceback:

10-27 19:51:29.006 4188-4188/? E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.example.jsonapi.sample, PID: 4188 
junit.framework.AssertionFailedError 
     at junit.framework.Assert.fail(Assert.java:48) 
     at junit.framework.Assert.assertTrue(Assert.java:20) 
     at junit.framework.Assert.assertNotNull(Assert.java:218) 
     at junit.framework.Assert.assertNotNull(Assert.java:211) 
     at com.example.jsonapi.JsonAPITest$2.onDone(JsonAPITest.java:101) 
     at com.example.jsonapi.JsonAPITest$2.onDone(JsonAPITest.java:96) 
     at org.jdeferred.impl.AbstractPromise.triggerDone(AbstractPromise.java:107) 
     at org.jdeferred.impl.AbstractPromise.triggerDone(AbstractPromise.java:98) 
     at org.jdeferred.impl.DeferredObject.resolve(DeferredObject.java:70) 
     at com.example.jsonapi.JsonAPI$1.onResponse(JsonAPI.java:178) 
     at com.example.jsonapi.JsonAPI$1.onResponse(JsonAPI.java:172) 
     at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:67) 
     at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30) 
     at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99) 
     at android.os.Handler.handleCallback(Handler.java:739) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5257) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

Ed ecco la prova corrispondente:

public void testFindOneCustomURL() throws Exception { 
    ArrayList<String> reqList = new ArrayList<>(); 
    reqList.add("queue.txt"); 

    MockWebServer server = getServerWithData(reqList); 
    // Ask the server for its URL. You'll need this to make HTTP requests. 
    URL baseUrl = server.getUrl("/api/v1"); 

    JsonAPI client = new JsonAPI(baseUrl, context); 
    client.getGsonBuilder() 
      .setDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 
    client.register(new VideoQueue()); 
    Promise prom = client.find(new VideoQueue()) 
      .set("user", "212139") 
      .run() 
      .done(new DoneCallback<ArrayList<VideoQueue>>() { 
       @Override 
       public void onDone(ArrayList<VideoQueue> videoQueue) { 
        assertNotNull(videoQueue); 
        assertNotNull(videoQueue.get(0)); 
        assertNotNull(videoQueue.get(0).getId()); 
        assertEquals("3310190", videoQueue.get(0).getId()); 
       } 
      }).fail(new FailCallback() { 
       @Override 
       public void onFail(Object rejection) { 
        assertNull(rejection); 
       } 
      }); 

    prom.waitSafely(); 
    // Shut down the server. Instances cannot be reused. 
    server.shutdown(); 

    // Make sure our client hit the server 
    RecordedRequest request = server.takeRequest(); 
    assertEquals("/api/v1/users/212139/queue", request.getPath()); 
} 
+0

Ho trovato una soluzione, ma sto ancora lavorando per una completa comprensione di esso. Ho aperto un biglietto relativo qui: https://github.com/jdeferred/jdeferred/issues/67 – freakTheMighty

risposta

1

Ciò significa che l'asserzione fallita. Normalmente dovrebbe riportare che il test case fallisce. Ma se si inserisce l'asserzione in un metodo di callback, sembra bloccarsi. Forse questo è un bug di junit.

Problemi correlati