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

android - Robolectric テストで raw リソースを開く

xml ファイルを開いて SQLite データベースにデータを入力する SQLiteOpenHelper を拡張するクラスがあります。私は単体テストの作成に取り組んでいますが、xml 入力リソースを開く必要がある場所で立ち往生しています。

デバッグすると、context.getResources() が null ではなく、シャドウ オブジェクトであることがわかりますが、context.getResources().getXml(R.xml.sample_input) は null を返します。

周りを読んでいると、シャドウリソースを作成する必要があると言う人がいますが、このような場合にそれを行う方法を説明している場所はどこにもありません。

それが役立つ場合、これが私のカスタムテストランナークラスが現在どのように見えるかです

テストでリソースを機能させるために欠けているものは何ですか?

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

android - Robolectricを使用してAndroidアクティビティをユニットテストするNullPointerExceptionを取得する

私はいくつかのアクティビティクラスを備えたAndroidアプリを開発しています。ユニットテストにRobolectricを使用しています。テストセットアップでは、テスト対象のアクティビティでonCreate(null)を呼び出します。

問題は、私がテストしているアクティビティのonCreateメソッドが呼び出すことです。

このコード行を実行すると、java.lang.NullPointerExceptionエラーが発生し、テストは実行されません。検討したいアイデアや追加のコードはありますか?

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

android - Robolectric:SherlockActivityをテストする方法

SherlockActivityを拡張するアクティビティでテストを実行しようとしています。ActionBarSherlockを使用してアクティビティをテストするためのソリューションについて見つけたすべてを読み、https://github.com/passy/absshadow-sampleをフォローしてみました。

これは私が現在行っていることです:

カスタムテストランナー:

シャドウSherlockActivity:

何らかの理由で、これで失敗します:

私のアクティビティは、setContentView最初に呼び出しますfindViewById

奇妙な部分は、のシャドウ実装でsetContentView何をしても、何も起こらないように見えることです(たとえば、をスローしますNullPojnterException)。私のシャドウは登録されます。あたかもの実装をオーバーライドしてonCreateそこで例外をスローしようとしているかのように、それは機能します。

ここで何が欠けていますか?

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

android - Robolectric が DialogFragment のビューをインフレートできない

次の a のメソッドをテストしようとしていますDialogFragment:

メソッドは次のpopulateViews()ようになります。

これで、テスト メソッドは次のようになります。

そして、ここに例外があります:

Views膨張していないため、テストは失敗します。この問題の回避策はありますか?

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

intellij-idea - 特定のRobolectricテストのjMockitインスタンス化を無効にする方法は?

私の Android 単体テストの多くは Robolectric で書かれていますが、非常に制限があるため、いくつかのテストには jMockit を使用したいと考えています。

問題は、jMockit がクラスをインスタンス化するたびに Robolectric テスト ランナーが失敗することです。

システムプロパティ「jmockit-mockParameters」を「annotated」に設定することにより、jMockitに注釈付きクラスのみをインスタンス化するように指示できることがわかりました - http://code.google.com/p/jmockit/source/detail?r=2066

Intellij IDEA を使用しており、テスト実行構成の VM オプションに追加しました-Djmockit-mockParameters=annotatedが、機能しません..

このシステム プロパティを適切に設定するにはどうすればよいですか?

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

android - Robolectric: ViewHolder パターンで ListView をテストすると NullPointerException が発生する

ListActivityViewHolder パターンを実装するアダプターです。

アダプターとビューホルダー:

このクラスで Robolectric テストを実行するとNullPointerExceptionholder.name.setTextholder.address.setText行が表示されます。

私の推測では、Robolectric はrow.findViewById正しく処理できません。

どうすれば修正できますか?

これは例外です:

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

android - 注入された @Singleton クラスを robolectric でオーバーライドするにはどうすればよいですか?

@Singleton api クラスを使用する Robolectric (および Mockito) を使用してテストしようとしているフラグメントがあります。各テストの応答をカスタマイズできる方法でシングルトンをモックしようとしています。私のフラグメントが参照する API クラスは次のとおりです。

設定しようとしているテストクラスは次のとおりです。

ただし、テストを実行すると、次のようになります。

ロボギスについて私が理解していることから、何らかの理由で「shadowViewGroup」に ShadowViewGroup を挿入できないようですが、その理由はわかりません。私がこれを間違った方法で行っている場合は、それをお知らせください。ただし、これは機能するはずです。

1) テストが機能しない理由、または 2) クラスが使用するカスタム シングルトンを挿入するためのより良い方法のいずれかを教えてください。

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

android - IntelliJ から Robolectric テストを実行すると OutOfMemory が発生する

ここの例に従って、Robolectric を使用する IntelliJ から単体テストを実行しようとしています:: http://pivotal.github.com/robolectric/intellij-quick-start.html

Robolectric jar と Junit4 用の jar を追加しました。テストが実行されると、次の出力が表示されます >>

IntelliJ 出力

グーグルで調べて、いくつかのvm引数を指定する必要があるいくつかの提案を見つけました。この投稿では、Eclipse Java ヒープ スペースに関する同様の問題について説明しています。この投稿は、Maven プロジェクトと連携して Robolectric を使用することに関係しています。Maven プロジェクト内で Robolectric を使用する方が簡単であると読みましたが、私の Android プロジェクトでは Maven を他に使用しないため、これを使用しないことにしました。

ここで何が間違っているかについて誰かが知恵を持っているなら、それは大歓迎です。

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

android - ファイルがディレクトリ res/layout/ にない場合、Robolectric 1.1 はレイアウト ファイルのロードに失敗します。

Robolectric 1.1 でテストを実行すると、レイアウト ファイルを拡張すると次のエラーが発生します。

このエラーが発生する理由を知っている人はいますか? 私が見たところ、Robolectric のバージョン 1.1 では、レイアウト ファイルのロード方法に変更はなく、フォルダ layout/: を検索します。

ただし、レイアウト ファイルが別のディレクトリ (例: layout-normal-hdpi) にある場合、このエラーが発生します。

誰かがこれに対する解決策を知っていますか?

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

android - カスタム ビューが存在する場合、Robolectric はレイアウト ファイルの拡張に失敗します

これは私のテストメソッドがどのように見えるかです:

行 aboutActivity.onCreate(null); このテストを実行すると、次の例外がスローされます

私のテストは、私の about.xml レイアウト ファイルから次のビュー (カスタム RelativeLayout) にコメントした場合にのみ完全に実行されます。

このビューもテストする必要があるため、xml ファイルから削除できません。誰もそれを修正する方法を知っていますか?

ありがとう