問題タブ [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.
android - Android デバイスで Robolectric テストを実行する最良の方法
Robolectric テスト プロジェクトのセットアップはありますが、これらのテストをデバイスでも実行して、JVM と Dalvik の実装の違いに影響されないことを確認したいと考えています。
Robolectric テストとは異なり、これらのテストは頻繁には実行しません。私の懸念は、テスト スイートを維持する労力がほとんどなく、実際のデバイスの機能を検証することです。
それを行う最善の方法は何ですか?
私が現在持っているもの:
テスト ケース TestPackage としての私の robolectric テスト プロジェクト。テスト ケース TestRoboOnAndroid を使用して Android テスト プロジェクトを作成しました。TestPackage を作成し、TestPackage 内の各テストのテストを行います。
現在、robolectric スイートにテストを追加するたびに、手動でデバイス スイートに追加する必要があります。リフレクションで自動的にそれを行う方法はありますか?
また、Robolectric は JUnit 4 (デフォルト) を使用し、Android は JUnit 3 を使用します。そのため、すべての Robolectric テストを JUnit 3 スタイル (junit.framework
の代わりにからインポートorg.junit
) を使用して作成する必要があります。
android - Robolectric を使用しているときにテスト クラスのリソースにアクセスするにはどうすればよいですか
res/raw でのテストに使用する値のテキスト ファイルを作成しました。テストで
使用したいです
。robolectric を使用して
います。これらの値にアクセスする最良の方法は何ですか?
ありがとう
android - Robolectric を Android リリース アーキタイプと連携させるにはどうすればよいですか?
Robolectric がhttps://github.com/akquinet/android-archetypes/wiki/Android-release-archetype
にある Android-release-archetype で動作するようにしようとしてい
ます。 POM への Robolectric 依存。
2.「クリーンインストール」という目標を使用しました。
次に、次のようなエラーが発生します。
誰かがこのアーキタイプをmavenで動作させて、その方法を教えてもらえますか? ここに私のテストクラスがあります:
ここに私の親POMがあります:
そして、ここに子POMがあります:
ありがとう
android - MavenのsurefireプラグインでRobolectricテストを実行するとClassNotFoundExceptionが発生する
Android Maven統合を使用してEclipseでプロジェクトをセットアップし、いくつかのテストではRobolectricをセットアップしました。
テストをEclipseにデプロイすると、テストは正常に実行されます。ただし、Mavenの「インストール」目標(これは実際にはローカルのMavenリポジトリに必要なライブラリです)を使用してプロジェクトをビルドしようとすると、これらの同じテストで失敗します。
ログには次のエラーが表示されます。
ここで、(package)はもちろん私のメインパッケージの名前です。これが私のPOMの関連セクションです:
ご覧のとおり、MavenAndroidプラグインに「genDirectory」オプションを追加してみました。しかし、役に立たない。
surefireプラグインにRクラスを「表示」させるために何が欠けていますか?
もう1つ、Rクラスは実際には私のコードによって参照されていません。
unit-testing - Gradle でクラスパスの順序を指定する方法
testRuntime 構成で jar の順序を制御する必要があります。
robolectric-xxjar が android.jar の前に来るようにする必要があります。そうしないと、恐ろしい RuntimeException("Stub!") が発生します。
それ、どうやったら出来るの?
android - Robolectricで現在のアクティビティを取得するにはどうすればよいですか?
onCreate()
結果を期待して、メソッド内から別のアクティビティBを起動するアクティビティAがあるとします。
Robolectricを使用してアクティビティBを取得するにはどうすればよいですか?
android - Robolectric でカスタムの Shadow オブジェクトはどのように機能しますか?
アクティビティのカスタム シャドウを作成し、それを RobolectricTestRunner に登録した場合、フレームワークは、開始されるたびにカスタム シャドウでアクティビティをインターセプトしますか?
ありがとう。
android - RobolectricでのSQLiteデータベースのテスト
AndroidアプリケーションでRobolectricを使用して単純なSQLiteデータベースをテストしようとしています。いくつかの値を入力していますが、それらを読み戻すと0行が返されます。
SQLiteOpenHelperクラスを使用してデータベースにアクセスしています。
robolectricの外部でコードをデバッグする場合、これは期待どおりに機能します。私は何か間違ったことをしていますか、それともRobolectricを使用してSQliteデータベースをテストすることはできませんか?
android - AdMobビューが存在する場合、Robolectricはレイアウトファイルを膨らませることができません。回避策はありますか?
これは私のRobolectric対応のJUnitテストクラスからのスニペットです:
テストを実行すると、この行mActivity.onCreate(null)
は次の例外をスローします。
レイアウトファイルから次のビューをコメントアウトすると、languageselection.xml
完全に正常に機能します。
質問:これの良い回避策は何ですか?純粋にテスト目的で広告を無効/有効にする必要はありません。広告をテストしていませんが、ボタンなどの他の要素をテストするために広告を削除する必要はありません。
ありがとう
android - Robolectric でメニュー項目のクリックをシミュレートする
Robolectric でボタンのクリックをシミュレートするのはかなり簡単です。
ただし、メニュー項目で同じことを行う方法がわかりません。でメニューを作成しましたActivity.onCreateOptionsMenu
が、その項目の 1 つのクリックをシミュレートするにはどうすればよいですか?