使用JUNIT测试运行AsyncHttpClient

Mo某

我已经尝试运行以下JUnit测试。当我尝试打印出userHash字符串时,我发现该字符串为null。这表明httpclient根本没有运行。我一直在关注这个帖子...

https://github.com/loopj/android-async-http/issues/173

这是我的课。

public class ECApiManagerTests {
    InstrumentationTestCase runnerHelper = new InstrumentationTestCase();
    private final String userEmail = "removed";
    private final String passWord = "removed";
    String userHash;


    @Test
    public void testPOST()throws Throwable{
        final AsyncHttpClient httpClient = new AsyncHttpClient();


        runnerHelper.runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
                RequestParams params = new RequestParams();
                params.put("email", userEmail);
                params.put("password", passWord);
                httpClient.post("https://edu.chat/api/login/", params, new AsyncHttpResponseHandler() {
                    @Override
                    public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
                        //called when response code 200
                        userHash = new String(responseBody);
                    }
                    @Override
                    public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

                    }
                });


            }
        });

        try {
            System.out.println(userHash);
            JSONObject obj = new JSONObject(userHash);
            Assert.assertEquals("true", obj.getString("success"));

        } catch (JSONException e) {
            e.printStackTrace();
        }





    }
艾格林

您忘记CountdownLatch了解决方案一部分。这很重要,因为请求是异步的,因此您需要等到请求完成后才能查看结果。闩锁通过让调用线程等待直到onFinish从响应处理程序中调用来完成此操作。

public class ECApiManagerTests {
    InstrumentationTestCase runnerHelper = new InstrumentationTestCase();
    private final String userEmail = "removed";
    private final String passWord = "removed";
    String userHash;

    @Test
    public void testPOST()throws Throwable{
        final AsyncHttpClient httpClient = new AsyncHttpClient();
        final CountDownLatch signal = new CountDownLatch(1);

        runnerHelper.runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
                RequestParams params = new RequestParams();
                params.put("email", userEmail);
                params.put("password", passWord);
                httpClient.post("https://edu.chat/api/login/", params, new AsyncHttpResponseHandler() {
                    @Override
                    public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
                        //called when response code 200
                        userHash = new String(responseBody);
                    }
                    @Override
                    public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

                    }
                    @Override
                    public void onFinish() {
                        signal.countDown();
                    }
                });


            }
        });
        try {
            signal.await(30, TimeUnit.SECONDS); // wait for callback
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        try {
            System.out.println(userHash);
            JSONObject obj = new JSONObject(userHash);
            Assert.assertEquals("true", obj.getString("success"));

        } catch (JSONException e) {
            e.printStackTrace();
        }    
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Eclipse中使用运行方式> SWTBot测试运行JUnit 5测试

来自分类Dev

带有Spring Boot JUnit 5测试的Wiremock:测试运行后正在使用的地址

来自分类Dev

如何使用dotnet测试运行特定测试?

来自分类Dev

如何使用Vividus工具同步测试运行?

来自分类Dev

使用Selenium IDE自动化测试运行

来自分类Dev

MAVEN:使用Maven测试运行多个Maven项目

来自分类Dev

着色golang测试运行输出

来自分类Dev

作为Maven测试运行

来自分类Dev

再现ScalaCheck测试运行

来自分类Dev

Couchbase测试运行失败

来自分类Dev

Intellij测试运行历史

来自分类Dev

测试运行null和字母?

来自分类Dev

Serverspec测试运行问题

来自分类Dev

在测试运行期间浏览

来自分类Dev

如何终止已进入无限循环的Eclipse中的JUnit测试运行

来自分类Dev

Junit4在测试运行时引发异常

来自分类Dev

当我“将Spring作为JUnit测试运行”时,内部会发生什么?

来自分类Dev

使用R#测试运行器运行ReSharper插件测试

来自分类Dev

使用业力测试运行器进行多种聚合物元素测试

来自分类Dev

使用业力测试运行器进行多种聚合物元素测试

来自分类Dev

使用Python中的绿色测试运行器跳过测试

来自分类Dev

使用不同的测试运行程序进行不同的测试

来自分类Dev

使用测试运行器来测试操作 DOM 的函数

来自分类Dev

在不使用InlineAutoData的情况下使用InlineAutoData的额外测试运行

来自分类Dev

可以在测试运行期间获得先前的测试

来自分类Dev

使单元测试作为集成测试运行

来自分类Dev

Visual Studio测试运行无法加载测试

来自分类Dev

Android的测试运行失败:没有测试结果

来自分类Dev

使用Gitlab CI共享测试运行程序有哪些安全风险?

Related 相关文章

热门标签

归档