Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.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 Android studio单元测试:编写针对截击请求的模拟测试时遇到的问题(以非零退出值1结束)_Java_Android_Unit Testing_Android Volley - Fatal编程技术网

Java Android studio单元测试:编写针对截击请求的模拟测试时遇到的问题(以非零退出值1结束)

Java Android studio单元测试:编写针对截击请求的模拟测试时遇到的问题(以非零退出值1结束),java,android,unit-testing,android-volley,Java,Android,Unit Testing,Android Volley,我一直在努力为volley定制请求编写测试用例,我已经为其实现了FakeHttpStack类和FakeRequestQueue 我的项目测试类结构如下: /app /src /test /java/package/myClassTest.java /resources/testfile.txt Gradle文件: 我的课程如下: FakeHttpStack.java myClassTest.java 我是Android studio的新手,编写测试类请指

我一直在努力为volley定制请求编写测试用例,我已经为其实现了
FakeHttpStack
类和
FakeRequestQueue

我的项目测试类结构如下:

/app
  /src      
  /test
     /java/package/myClassTest.java
     /resources/testfile.txt
Gradle文件

我的课程如下:

FakeHttpStack.java

myClassTest.java


我是Android studio的新手,编写测试类请指导我的错误所在。

这可能是由于许多原因造成的,例如由于没有足够的RAM来构建项目,所以请释放足够的内存,如果它不能解决您的问题,那么您可以尝试删除未使用的依赖项库并同步您的gradle,您可以参考

这可能是由于许多原因造成的,例如由于没有足够的RAM来构建您的项目,因此请释放足够的内存,如果它不能解决您的问题,那么您可以尝试删除未使用的依赖项库并同步您的渐变,您可以参考应用程序级别build.gradle文件中的

,添加

defaultConfig{
  multiDexEnabled true
}

在应用程序级别build.gradle文件中,添加

defaultConfig{
  multiDexEnabled true
}

尝试运行
/gradlew dexDebug--debug
以获取有关失败原因的详细信息预期的顶级错误:java.lang.OutOfMemoryError:java堆空间错误:任务“::dexDebug”的执行失败>com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:process'command'C:\Program Files\Java\jdk1.7.0\u 21\bin\Java.exe''以非零退出值3@hoomiI认为@android Weblineindia答案似乎是正确的这类测试是否测试您的代码,或者作为框架截取?尝试运行
/gradlew dexDebug--debug
以获取有关失败原因的详细信息预期的顶级错误:java.lang.OutOfMemoryError:java堆空间错误:任务“::dexDebug”的执行失败>com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:process'command'C:\Program Files\Java\jdk1.7.0\u 21\bin\Java.exe''以非零退出值3@hoomiI认为@android Weblineindia的答案似乎是正确的这类测试是测试您的代码,还是作为一个框架测试?
import android.content.Context;
import com.android.volley.AuthFailureError;
import com.android.volley.Cache;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.BasicNetwork;
import com.android.volley.toolbox.NoCache;
public  class  FakeRequestQueue  extends  RequestQueue {
    public  FakeRequestQueue (Context context) {
        super(new NoCache(), new BasicNetwork(new FakeHttpStack(context)));
        start();
    }
    @Override
    public  void  start () {
        System.out.println("request start");
        super.start();
    }
    @Override
    public  void  stop () {
        System.out.println("request stop");
        super.stop();
    }
    @Override
    public  Cache  getCache () {
        System.out.println("request start");
        return super.getCache();
    }
    @Override
    public  void  cancelAll (RequestFilter filter) {
        System.out.println("Request cancel with filter " + filter);
        super.cancelAll(filter);
    }
    @Override
    public  void  cancelAll (Object tag) {
        System.out.println("Request cancel with tag " + tag);
        super.cancelAll(tag);
    }
    @Override
    public  Request  add (Request request) {
        System.out.println("Note: FakeRequestQueue is used");
        System.out.println("New request "+ request.getUrl()+ " is added with priority "+ request.getPriority());
        try {
            if (request.getBody() == null) {
                System.out.println("body is null");
            } else {
                System.out.println("Body:" + new String(request.getBody()));
            }
        } catch (AuthFailureError e) {
            // cannot do anything
        }
        return super.add(request);
    }
}
  public class OppTestCase {
    private static FakeRequestQueue fakeRequestQueue;
    @Before
    public void setup() {
        System.out.println("setup ");
        if (fakeRequestQueue == null) {
            fakeRequestQueue = new FakeRequestQueue(RuntimeEnvironment.application.getApplicationContext());
        }
    }
    @Test
    public void testinglist(){
        GsonRequest<Result> gsonRequest = new GsonRequest<Result>(
                Request.Method.GET,
                Constants.STR_URL_LIST,
                Result.class,
                null,
                new Response.Listener<OpportunityListResult>() {
                    @Override
                    public void onResponse(OpportunityListResult response) {                       
                        System.out.println("response:"+response.toString());
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError volleyError) {
                        assertEquals(volleyError,notNullValue());
                    }
                })
        };
        fakeRequestQueue.add(gsonRequest);
}
Error:Gradle: Execution failed for task '::dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_21\bin\java.exe'' finished with non-zero exit value 1.
defaultConfig{
  multiDexEnabled true
}