2

作業中のテストケースにはRobolectricを使用していますが、ActionBarSherlockはうまく機能していないようです。

問題は、robolectricを介して実行すると== 0No implementations match configurationであるため、メッセージが表示されることです。Build.VERSION.SDK_INT

ABSをRobolectricでうまく機能させるための最良の方法について誰かがアイデアを持っているなら、私は知りたいです。結果をここに投稿しますが、この人気のあるツールキットとライブラリを連携させる方法についての情報を見つけるのは非常に難しいようです。

4

2 に答える 2

8

これを解決する2つの方法:

  1. このグロスメソッド呼び出しを使用して、 RobolectricのBuild.SDK_INT値を実際の値に変更します。RobolectricTestRunner.setStaticValue(Build.VERSION.class, "SDK_INT", 15);
  2. 既存の実装の1つから拡張し、注釈を付ける独自のActionBarSherlock実装を作成します(同様@ActionBarSherlock.Implementation(api = 0)に呼び出すことを忘れないでください)。ActionBarSherlock.registerImplementation
于 2012-08-20T15:09:03.940 に答える
1

Robolectric 2.2の新しいバージョンでは、 Build.VERSION.SDK_INTの値を次のように変更できます。

Robolectric.Reflection.setFinalStaticField(Build.VERSION.class, "SDK_INT", 15);
于 2014-08-28T14:33:24.737 に答える