由于IllegalState异常,Android TestRunner失败

vis*_*kar 16 java junit android unit-testing

我正在运行android Instrumentation测试来进行单元测试活动,特别是如果WebView已加载或不是代码如下,但每次我都得到异常

运行测试测试运行已开始测试未能运行至完成.原因:'由于'java.lang.IllegalStateException''导致检测运行失败.检查设备logcat以获取详细信息测试运行失败:由于'java.lang.IllegalStateException'导致检测运行失败

没有Logcat日志,只是在控制台中显示此消息,在Genymotion上尝试以及设备都在Android 5.0上.

代码如下

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过搜索,但不知道为什么会发生这种异常,请帮忙.

小智 1

在 try 语句后面添加一个 catch 语句,并给 try 语句一个例外。语法可能有点不对劲,但这应该可以解决你的问题

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);
}
Run Code Online (Sandbox Code Playgroud)

}