【问题标题】:Android testing. Mocking HttpUrlConnection(partially)安卓测试。模拟 HttpUrlConnection(部分)
【发布时间】:2016-10-12 16:33:10
【问题描述】:

我必须创建一个测试系统来拦截所有 HTTP 请求但只处理少数请求,经过一些研究后我发现 this 文章展示了如何模拟 HttpUrlConnection 但我必须适应,我只想将它用于请求这是我测试的一部分,其他人应该像往常一样通过互联网,我的尝试是返回依赖于 url 的不同 HttpUrlConnection 对象,显然没有用。

    public class MockURLStreamHandler extends URLStreamHandler implements URLStreamHandlerFactory
{
    ..............................
    // *** URLStreamHandler

    @Override
    protected URLConnection openConnection(URL u) throws IOException {

        mConnection = new MockHttpURLConnection(u);
        if(u.toString().equals(myTestUrl))
        {
           return mConnection;
         }
        else
        {
          //this doesn't work 
            return new HttpUrlConnection(u){..}
       }  
    }
    ...............................
}

有什么想法吗?之后我应该寻找什么?

提前致谢。

【问题讨论】:

  • 你考虑过使用 Mockito 吗?

标签: android unit-testing http integration-testing android-testing


【解决方案1】:

看看MockWebServer

这个库使测试您的应用程序是否正确执行变得容易 当它进行 HTTP 和 HTTPS 调用时。它允许您指定哪个 响应返回,然后验证请求是作为 预计。

因为它会锻炼您的完整 HTTP 堆栈,所以您可以确信 你正在测试一切。您甚至可以复制和粘贴 HTTP 响应 从您的真实 Web 服务器创建有代表性的测试用例。或测试 您的代码在 500 等难以重现的情况下仍然存在 错误或加载缓慢的响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多