問題タブ [robolectric]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
5977 参照

android - Robolectric+Eclipse リソースが見つかりませんか?

Robolectric を使用するように Android アプリのテスト プロジェクトを構成しました。Eclipse Quick Startに従いました。最初の単純なテストを実行すると、例外が発生します。

テストは次のとおりです。

./resAndroidフォルダが見つからないようです。${workspace_loc:teldir-android}ガイドが言うように、JUnit構成を指摘しました。そして、これにより、EclipseはAndroidManifest.xml他のエラーを回避して、を見つけるようになります。

この例外を回避しよう./resとして、Android アプリのソース フォルダーとしてフォルダーを追加し、すべてをクリーンアップして再起動しましたが、同じ例外が発生しました。

私は何を間違っていますか?

0 投票する
1 に答える
1574 参照

android - Android / Robolectricフレームワーク-インスタンス化されたアクティビティは、getResourceでnullを返します

これは、AndroidでのユニットテストにRobolectricフレームワークを使用することと関係があります。通常の実行では問題のないコードでnullポインター例外が発生します。私はロボエレクトリックを始めたばかりなので、おそらくかなり簡単です。

テスト用の呼び出しコードは次のとおりです。

クラッシュするInitUtils内で呼び出されるメソッドは次のとおりです

/ ***XMLを{@seemQuestions}クラスメンバー変数にロードします**/

リソースを取得するためにこれを行うために特別なことをする必要がありますか?

0 投票する
1 に答える
1691 参照

android - org.apache パッケージでの Robolectric NoClassDefFoundError

プロジェクトに robolectric を統合しようとしていますが、予期しない問題が発生しました。

Robolectric を使用していない場合、プロジェクトは正常にコンパイルされます。ただし、Robolectric で簡単なテストを実行すると、org.apache.http パッケージで NoClassDefFoundError が発生します。

プロジェクトのビルドに Maven を使用しており、http-client 4.1 を含めています (Apache ライブラリの http-mime 4.1 に依存しているため)。

Robolectric jar にはデフォルトで httpclient 4.0.3 が含まれているため、http クラスが見つからない理由がわかりません。AndroidTranslator がバイトコードを変更しようとしていることに関係していると思われます (dalvik jvm と互換性を持たせるためですか?)

誰かがこの問題に光を当てることができれば、私たちは非常に感謝しています.

0 投票する
8 に答える
25948 参照

android - そのボタンをテストすると、Robolectricでアクティビティが開始されます

こんにちは私は次のコードを持っています:

しかし、pressMeButtonを押すと新しいアクティビティが開始されることをテストする方法がわかりません。実際にはそうですが、この事実に対する正しいRobolectricユニットテストを作成するにはどうすればよいですか?

0 投票する
4 に答える
7923 参照

android - Android Robolectricテストで構成を強制的に変更するにはどうすればよいですか?

私はrobolectricを使用して、Androidユニットテストを十分に高速にして便利にしています。私が書いたコードが、一般的な実際のユースケースをシミュレートするために画面の向きが変化している間に機能することをテストしたいと思います。

具体的には、私がテストしているのは、結果がフェッチされた後にいくつかのxmlが解析されるサーバーへの非同期http呼び出しです。うまく機能しているすべての単体テストがありますが、画面の回転をシミュレートする方法がわかりません。アクティビティがそれ自体を再作成する原因となる状態の変化は問題ありません。必ずしも画面の回転である必要はありません。

テストを1分間に数回実行し、2秒未満で実行する必要があるため、エミュレーターを使用するソリューションはオプションではありません。可能であれば、これもroboguiceで動作させたいと思います。

ありがとう。

0 投票する
1 に答える
843 参照

android - Robolectricカスタムシャドウオブジェクト

OOTB、Robolectricはロケールをそれほどサポートしていません。したがって、アプリがロケールに依存している場合(多くのアプリは、適切にi18nである場合)、これは非常に苦痛になる可能性があります。簡単に言うと、必要なロケールをシミュレートできる独自のShadowFooGeocoderとShadowFooAddressを作成しました。これらは基本的に、既存のシャドウの再実装です。

ただし、クラスをそのようにバインドする場合:bindShadowClass(ShadowFooGeocoder.class)、これはうまく機能します。実行時に、正しいシャドウが返されます。問題は、このオブジェクトにシミュレーションを設定したいのですが、その方法がわかりません。instanceが注入されたGeoCoderであるshadowOf(instance)は、ShadowGeoCoderを返します。ShadowWranglerを直接操作してみましたが、ShadowGeocoderも返されます。

bindShadowClass(...)呼び出しを介してバインドしたシャドウクラスを取得して、期待値(シミュレーション)を設定するにはどうすればよいですか?

注:これは、ここのRobolectricグループに関する同じ質問の再投稿です。グループの質問に誰かに答えてもらう成功率がかなり低いので、ここに投稿しました。ここでより良い結果を期待しています。

0 投票する
2 に答える
220 参照

java - Android Java 静的汎用呼び出し

私はRobolectricを使用しています.Robolectricクラスには静的メソッドがあります:

私は長い間 C# Generics のバックグラウンドを持ってきたので、これについて間違って考えている可能性があります。私の最初の本能は、これをそのまま利用することでした:

ただし、これはコンパイルされません (さらに、私と私の C# ジェネリックの背景には、正しく見えません)。

この方法を使用するにはどうすればよいですか?

メソッドのソースはここにあります。

0 投票する
2 に答える
1725 参照

android - RobolectricでGoogleAnalyticsを使用する場合のSQLException(または「RobolectricでSQLite3を使用しようとしています」)

私はrobolectricを使用して、GoogleAnalyticsを利用するアクティビティをテストしています。残念ながら、アクティビティを開始しようとすると、次の例外が発生します

問題は、AndroidがSQLiteデータベースを使用しているのに対し、robolectricはわずかに異なる種類のSQLをサポートするH2を使用していることです。

この問題を回避する最も簡単な方法は何ですか?

0 投票する
1 に答える
998 参照

android - ProgressBarのロボレクトリック問題

ProgressBarを持つアクティビティに対してonCreateを呼び出そうとすると、RobolectricからRuntimeExceptionが発生し続けます。レイアウトxmlファイルのこのブロックに問題をローカライズしました。これを削除してテストを再実行するとすぐに、問題なく動作します。

完全なスタックトレースは次のとおりです。

ShadowProgressBarが役立つと思ったので、githubヘッド(1.0-RC2)を使用していますが、そうではないようですが、正しく使用していない可能性があります。

また、IDまたはスタイルが問題の原因であると思いましたが、XMLでそれらを削除しても例外は停止しませんでした。

どんな助けでもいただければ幸いです。


アップデート

プログレスバーのxmlを次のように変更しました。

そしてそれはうまくいった。

0 投票する
0 に答える
136 参照

android - Robolectric と JDave の統合

JDave BDD構文とRobolectricフレームワークがAndroid環境外でテストを行うように、これら2つのフレームワークを連携させる簡単な方法があるかどうかを知りたいです。

これは可能ですか?それぞれにカスタム TestRunner があり、他の誰かがこれを試みましたか? それは簡単な方法で実行できますか?