WebView
Robolectric を使用していくつかのコンテンツをテストしようとしていますが、データが入ってきません。
で以前loadUrl()
に次のことを呼び出しましたWebView
。
Robolectric.getFakeHttpLayer().interceptHttpRequests(false);
Robolectric.getFakeHttpLayer().interceptResponseContent(true);
また、Robolectric-land でキューに入れられているものをすべてフラッシュするために、以下を呼び出しました。他のいくつかのことを成功させるために、これを行う必要があります。
Robolectric.runBackgroundTasks();
Robolectric.runUiThreadTasks();
Robolectric.runUiThreadTasksIncludingDelayedTasks();
URLをロードするコードは次のとおりです
WebView webView = new WebView(this);
webView.getSettings().setUseWideViewPort(false);
webView.getSettings().setSupportMultipleWindows(false);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setAppCacheEnabled(false);
webView.getSettings().setDomStorageEnabled(false);
webView.getSettings().setLoadWithOverviewMode(true);
webView.setInitialScale(1);
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
Log.d(TAG, newProgress + " URL: " + view.getUrl());//this never happens!
}
});
webView.loadUrl("https://the-url.to/load");
Log.d(TAG, "Loading: " + url);//i see this..
私は Robolectric とそれがエミュレーターのオーバーヘッドの問題をどのように解決するかを本当に気に入っていますが、上記の WebView 実装と連携する必要があります。何か案は?