Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Webview和x27上的单元测试;他正在使用JUnit_Java_Android_Testing_Junit_Webview - Fatal编程技术网

Java Webview和x27上的单元测试;他正在使用JUnit

Java Webview和x27上的单元测试;他正在使用JUnit,java,android,testing,junit,webview,Java,Android,Testing,Junit,Webview,我在使这个单元测试正常工作时遇到了一些问题,我似乎无法解决它。如果你能帮忙检查一下下面的代码和错误,看看它对你是否有意义。我知道这是件容易的事,但我似乎无法让它正常工作 我有一个问题(mError无法解析为变量)。我做错了什么,我在MockWebViewClient类中创建了变量。现在,当我注释掉使用mError的代码行时,测试仍在运行 但是现在,在运行测试时,我在下面的代码行中得到了“junit.framework.AssertionFailedError” assertTrue(!(mWeb

我在使这个单元测试正常工作时遇到了一些问题,我似乎无法解决它。如果你能帮忙检查一下下面的代码和错误,看看它对你是否有意义。我知道这是件容易的事,但我似乎无法让它正常工作

我有一个问题(mError无法解析为变量)。我做错了什么,我在MockWebViewClient类中创建了变量。现在,当我注释掉使用mError的代码行时,测试仍在运行

但是现在,在运行测试时,我在下面的代码行中得到了“junit.framework.AssertionFailedError”

assertTrue(!(mWeb.getProgress() < 100));
assertTrue(!(mWeb.getProgress()<100));
提前谢谢

WebviewTest.java
private静态最终字符串有效\u URL=”http://www.google.com";
私有静态最终字符串无效\u URL=”http://invalid.url.doesnotexist987.com";
私有静态最终长超时=5000;
私人启蒙、网络观点、主要活动;
私有网络视图mWeb;
私有WebViewClient mMockWebViewClient;
//我的代码的其余部分。。。。
公共最终作废testLoadValidUrl(){
assertLoadUrl(有效的\u URL);
assertFalse(mMockWebViewClient,mError);
}
公共最终无效testLoadInvalidUrl(){
assertLoadUrl(无效的\u URL);
assertTrue(mMockWebViewClient.mError);
}
私有void资产加载url(字符串url){
加载url(url);
睡眠();
//添加到希望让webview一路加载
getInstrumentation().waitForIdleSync();
assertTrue(!(mWeb.getProgress()<100));
}
私人虚空睡眠(){
试一试{
睡眠(超时);
}捕捉(中断异常e){
失败(“意外超时”);
}
}
公共类MockWebViewClient扩展了WebViewClient{
布尔梅罗;
@凌驾
接收错误时公共无效(WebView视图,int错误代码,
字符串说明,字符串失败(URL){
mError=真;
}
}
编辑 我通过将我的
mMockWebViewClient
变量切换到正确的类型,即
MockWebViewClient
,解决了这个问题。由于
MockWebViewClient
类包含我在
testloadvalidul

中需要的
mError
布尔值,因此在
testloadvalidul
方法中没有定义变量“mError”,可能是输入错误。对于成员访问权限,有一个逗号“,”表示句点“,”

即改变

public final void testLoadValidUrl() {
    assertLoadUrl(VALID_URL);
    assertFalse(mMockWebViewClient, mError);
}


当更改时,我现在得到以下错误“mError无法解析或不是字段”您的变量“mMockWebViewClient”是“WebViewClient”引用,而不是“MockWebViewClient”引用。将其强制转换为“MockWebViewClient”,然后访问该成员。确保变量“mMockWebViewClient”被分配了一个实际的“MockWebViewClient”实例。我只需将“private WebViewClient mMockWebViewClient;”更改为“private MockWebViewClient mMockWebViewClient;”即可解决此问题。谢谢你
public final void testLoadValidUrl() {
    assertLoadUrl(VALID_URL);
    assertFalse(mMockWebViewClient, mError);
}
public final void testLoadValidUrl() {
    assertLoadUrl(VALID_URL);
    assertFalse(mMockWebViewClient.mError);
}