2013-04-15 39 views
1

我试图找出在我的(WebView)中检查主要活动URL的最简单方法。这将在使用Robotium 4.1框架的单元测试中进行。所有我想弄清楚如何我可以与webview进行交互,例如发送活动URL加载,所以我可以测试,并确保正确的URL加载,并检查我的操作栏项目以及。在Robotium中进行单元测试时检查WebView的URL

任何代码,建议或建议将不胜感激。

public class ErrorHandling extends 
    ActivityInstrumentationTestCase2<Webview_Main> { 
     private Solo solo; 
     private WebView web; 
.. 
protected void setUp() throws Exception { 
    super.setUp(); 
    solo = new Solo(getInstrumentation(),getActivity()); 
} 

每建议(目前 - NullPointerException异常Erorrs)更新

回答

3

第一,呼吁

web.getSettings(); 

给你什么。它为您提供WebSettings,但您不会对该对象执行任何操作。

要断言你的WebView当前的网址,你可以使用:

assertTrue(solo.getWebUrl().equals("your url")); 

要加载指定的网址中的网页视图,你必须在另一个线程中运行它(在这里我不知道,如果它应该是runOnMainSync或runOnUiThread,但是我想runOnUiThread,它工作得很好),例如:

solo.getCurrentActivity().runOnUiThread(new Runnable() { 
    public void run() { 
     web.loadUrl("http://www.OTHER_url_TO_test_AGAINST"); 
    } 
}); 
+0

我已经根据您的建议添加了上述测试,我在两者上都得到了NullPointerExceptions。 –

+0

对于testWeb(),我的LogCat在web.loadUrl中声明它的值为null。 –

+0

- 如果您得到NullPointerExceptions,可能webview为null。确保你对该对象有正确的参考。 - loadUrl是void方法。那里是什么? – maszter

1

查询的网址的步骤如下:

1)创建web视图对象具体应用

OBJ =(的WebView)getActivity()findViewById((来源或APK).R.id的包名(源的WebView的ID)。)

注意:如果你不有你正在编写测试用例的源应用程序的源代码,然后使用层次结构查看器查找webview的id。

2)添加一些睡眠,这样它会等待加载URL solo.sleep(花费时间)

3)的时候使用它来获取应用程序的当前值或状态。 obj.getSettings()

4)取一个布尔变量并存储 布尔变量的值= solo.getWebUrl()等于( “URL将被测试”)。

5)assertTrue(布尔变量) 要验证值真或假。

相关问题