2015-07-17 18 views
16

Używam android testy oprzyrządowanie działalności badanej jednostki, aw szczególności jeśli WebView został załadowany lub nie kod jest w następujący sposób, ale za każdym razem otrzymuję wyjątekAndroid TestRunner nie z powodu wyjątku IllegalState

uruchamiania testów wydajność test rozpoczęty Test nie został wykonany do końca. Powód: "Uruchomienie oprzyrządowania nie powiodło się z powodu " java.lang.IllegalStateException ". Sprawdzić urządzenia logcat szczegóły uruchomiony test zakończył się niepowodzeniem: run Instrumentation powiodło się z powodu „java.lang.IllegalStateException”

Brak dzienników logcat, tylko tę wiadomość w konsoli, próbował na Genymotion jak również urządzenia są zarówno na Androida 5.0.

Kod jest następujący

public class WebViewActivityTest extends ActivityInstrumentationTestCase2 <WebViewActivity> { 

    WebView webView; 
    WebViewActivity testActivity; 

    public WebViewActivityTest() 
    { 
     super(WebViewActivity.class); 
    } 

    @Override 
    protected void setUp() throws Exception { 
     super.setUp(); 
     testActivity = getActivity(); 

    } 

    public void testWebView() 
    { 
     webView = (WebView)testActivity.findViewById(R.id.webView); 
     assertNotNull(webView); 
    } 

    public void testPreconditions() { 

     assertNotNull("Webview activity is null",testActivity); 
    } 
} 

Próbowałem szukając ale dostał pojęcia, dlaczego ten wyjątek jest występujących, proszę o pomoc.

+0

Kompletny StackTrace byłoby bardzo mile widziane – Johnco

+0

@Johnco im się nic logicznego tylko tego wyjątku na konsoli –

+0

What's Komunikaty wyjątku? FYI [http://stackoverflow.com/questions/14839162/instrumentation-run-failed-due-to-java-lang-illegalaccesserror] [1] [1], http: // stackoverflow.com/questions/14839162/instrumentation-run-failed-due-to-java-lang-illegalaccesserror – suiwenfeng

Odpowiedz

1

Dodaj poświadczenie catch po próbie stetment i daj wyjątek try tryment. syntext może być trochę off, ale to powinno rozwiązać Twój probleme

public class WebViewActivityTest extends ActivityInstrumentationTestCase2 <WebViewActivity> { 

WebView webView; 
WebViewActivity testActivity; 

public WebViewActivityTest() 
{ 
    super(WebViewActivity.class); 
} 

@Override 
protected void setUp() throws(exeption e) { 
    super.setUp(); 
    testActivity = getActivity(); 
    catch(exeption e) 
    System.out.println("Nope!); 

} 

public void testWebView() 
{ 
    webView = (WebView)testActivity.findViewById(R.id.webView); 
    assertNotNull(webView); 
} 

public void testPreconditions() { 

    assertNotNull("Webview activity is null",testActivity); 
} 

}

+0

Zdefiniuj dobrze instrukcję bloku try/catch. – Joseph

+0

Musisz zdecydować się na 'throws' lub' try' jako kontroler wyjątków. – eyalp55

+0

Aby rozwiązać problem, potrzebujesz obsługi wyjątków i zaimplementujesz ją w kodzie. aby uzyskać więcej informacji na temat wyjątków i ich obsługi, polecam ten https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html – eyalp55

Powiązane problemy