おそらくこれは今までの中で最もばかげた質問です。まったくまっすぐ考えることはできませんが、android.webkit
のURLUtil.isHttpsUrl()
を使用すると非常に奇妙な現象が発生しました。URLUtil.isHttpsUrl()Simple Unittestの戻り値が間違っていますか? (returnDefaultValues = true)
私はプロジェクトのUnittestをいくつか書いていて、URLが有効ではないと考えられるため、メソッドが予期しない値を返したことが検出されました。
物事を絞り込むしようとすると、私はこのような単純なテストケースになってしまった:あなたが見ることができるように
@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://");
}
、私は単にandroid.webkit
パッケージからURLUtil.isHttpsUrl()
をコピーしました。
compileSdkVersion 25
とcompileSdkVersion 24
で使用しました。 `URLUtil.isHttpUrl()と同じです。
私はすでにプロジェクトを再構築しようとしましたが、再起動した+ ASの無効化されたキャッシュを再構築しました。
誰かが何が起こっているのか説明できますか?私は何か間違っているのですか?
Unittestクラスに問題がある可能性がありますか? それは、単純なJUnitテストであり、私はこのようなGradleのでreturnDefaultValues
を設定している:
android {
...
...
testOptions {
unitTests.returnDefaultValues = true
}
}
私は、「コンテキスト関連」の呼び出しは、デフォルト値を取得すると仮定しているだろうが、URLUtil.isHttpsUrl()
がある、が、静的であり、いかなる文脈も含まない。
もっとも奇妙なことですが、私はAndroid SDKの一部である「URLEncoder.encode(...)」も使用しています。関連するユニットテストは何の疑いもなく働いています。 – soey