代码之家  ›  专栏  ›  技术社区  ›  soey

URLUtil。isHttpsUrl()在简单单元测试中返回值错误?(returnDefaultValues=true)

  •  5
  • soey  · 技术社区  · 8 年前

    URLUtil.isHttpsUrl() 从…起 android.webkit .

    为了缩小范围,我最终得到了这样一个简单的测试用例:

        @Test
        public void testSimpleHttpsCheck() {
          String url = "https://www.this.ishttps.com";
          Assert.assertTrue(isHttpsUrl(url)); // returns true
          Assert.assertTrue(URLUtil.isHttpsUrl(url)); // returns false
        }
    
        // this is a local copy of isHttpsUrl:
        // it is simple copied from the original URLUtil (SDK 25)
        private boolean isHttpsUrl(String url) {
        return (null != url) &&
                (url.length() > 7) &&
                url.substring(0, 8).equalsIgnoreCase("https://");
        }
    

    如你所见,我只是复制了 URLUtil。isHttpsUrl() 安卓网络工具包 包裹

    我已经用过了 compileSdkVersion 25 compileSdkVersion 24 “URLUtil”也是如此。isHttpUrl()

    我已经尝试清理并重建项目,重新启动并使AS的缓存无效。

    或者Unittest类可能有问题吗? 这是一个简单的JUnit测试,我已经设置了 returnDefaultValues

        android {
          ...
          ...
          testOptions {
            unitTests.returnDefaultValues = true
          }
        }
    

    URLUtil。isHttpsUrl() 是静态的,不涉及任何上下文。

    1 回复  |  直到 8 年前
        1
  •  7
  •   soey    5 年前

    好的,看起来甚至静态Util类也需要插入指令的单元测试。我只是在没有 testOptions 现在它说 Method isHttpsUrl in android.webkit.URLUtil not mocked.

    很抱歉打扰你,我刚刚意识到这可能和 当我准备发布我的问题时。经过两个小时的调试,我几乎对自己的编程技能失去了信心。