問題タブ [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 投票する
3 に答える
4038 参照

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) を使用して作成する必要があります。

0 投票する
3 に答える
5249 参照

android - Robolectric を使用しているときにテスト クラスのリソースにアクセスするにはどうすればよいですか

res/raw でのテストに使用する値のテキスト ファイルを作成しました。テストで
使用したいです
。robolectric を使用して
います。これらの値にアクセスする最良の方法は何ですか?
ありがとう

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

android - Robolectric を Android リリース アーキタイプと連携させるにはどうすればよいですか?

Robolectric がhttps://github.com/akquinet/android-archetypes/wiki/Android-release-archetype
にある Android-release-archetype で動作するようにしようとしてい
ます。 POM への Robolectric 依存。
2.「クリーンインストール」という目標を使用しました。
次に、次のようなエラーが発生します。

誰かがこのアーキタイプをmavenで動作させて、その方法を教えてもらえますか? ここに私のテストクラスがあります:

ここに私の親POMがあります:

そして、ここに子POMがあります:

ありがとう

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

android - MavenのsurefireプラグインでRobolectricテストを実行するとClassNotFoundExceptionが発生する

Android Maven統合を使用してEclipseでプロジェクトをセットアップし、いくつかのテストではRobolectricをセットアップしました。

テストをEclipseにデプロイすると、テストは正常に実行されます。ただし、Mavenの「インストール」目標(これは実際にはローカルのMavenリポジトリに必要なライブラリです)を使用してプロジェクトをビルドしようとすると、これらの同じテストで失敗します。

ログには次のエラーが表示されます。

ここで、(package)はもちろん私のメインパッケージの名前です。これが私のPOMの関連セクションです:

ご覧のとおり、MavenAndroidプラグインに「genDirectory」オプションを追加してみました。しかし、役に立たない。

surefireプラグインにRクラスを「表示」させるために何が欠けていますか?

もう1つ、Rクラスは実際には私のコードによって参照されていません。

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

unit-testing - Gradle でクラスパスの順序を指定する方法

testRuntime 構成で jar の順序を制御する必要があります。

robolectric-xxjar が android.jar の前に来るようにする必要があります。そうしないと、恐ろしい RuntimeException("Stub!") が発生します。

それ、どうやったら出来るの?

0 投票する
3 に答える
3346 参照

android - Robolectricで現在のアクティビティを取得するにはどうすればよいですか?

onCreate()結果を期待して、メソッド内から別のアクティビティBを起動するアクティビティAがあるとします。

Robolectricを使用してアクティビティBを取得するにはどうすればよいですか?

0 投票する
5 に答える
9689 参照

android - Robolectric でカスタムの Shadow オブジェクトはどのように機能しますか?

アクティビティのカスタム シャドウを作成し、それを RobolectricTestRunner に登録した場合、フレームワークは、開始されるたびにカスタム シャドウでアクティビティをインターセプトしますか?

ありがとう。

0 投票する
3 に答える
15219 参照

android - RobolectricでのSQLiteデータベースのテスト

AndroidアプリケーションでRobolectricを使用して単純なSQLiteデータベースをテストしようとしています。いくつかの値を入力していますが、それらを読み戻すと0行が返されます。

SQLiteOpenHelperクラスを使用してデータベースにアクセスしています。

robolectricの外部でコードをデバッグする場合、これは期待どおりに機能します。私は何か間違ったことをしていますか、それともRobolectricを使用してSQliteデータベースをテストすることはできませんか?

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

android - AdMobビューが存在する場合、Robolectricはレイアウトファイルを膨らませることができません。回避策はありますか?

これは私のRobolectric対応のJUnitテストクラスからのスニペットです:

テストを実行すると、この行mActivity.onCreate(null)は次の例外をスローします。

レイアウトファイルから次のビューをコメントアウトすると、languageselection.xml完全に正常に機能します。

質問:これの良い回避策は何ですか?純粋にテスト目的で広告を無効/有効にする必要はありません。広告をテストしていませんが、ボタンなどの他の要素をテストするために広告を削除する必要はありません。

ありがとう

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

android - Robolectric でメニュー項目のクリックをシミュレートする

Robolectric でボタンのクリックをシミュレートするのはかなり簡単です。

ただし、メニュー項目で同じことを行う方法がわかりません。でメニューを作成しましたActivity.onCreateOptionsMenuが、その項目の 1 つのクリックをシミュレートするにはどうすればよいですか?