由于IllegalState异常,Android TestRunner失败

时间:2015-07-17 12:35:27

标签: java android unit-testing junit

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

  

运行测试测试运行已开始测试无法运行至完成。   原因:'仪表运行失败,原因是:   ' java.lang.IllegalStateException'&#39 ;.检查设备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);
    }
}

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

1 个答案:

答案 0 :(得分:1)

在尝试使用后添加一个catch语句并给try语句一个exeption。 syntext可能有点偏,但这应该解决你的问题

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);
}

}