Action Bar Sherlock + Robolectric

时间:2012-08-20 09:02:28

标签: android actionbarsherlock robolectric

我们在工作中使用Robolectric进行工作似乎效果不佳Action Bar Sherlock。

问题是我收到No implementations match configuration消息,因为Build.VERSION.SDK_INT == 0时通过robolectric运行。

如果有人对使用Robolectric获得ABS的最佳方法有所了解,我很想知道。如果我发现我会在这里发布我的结果,但似乎很难找到有关如何使这个流行的工具包和库一起工作的信息。

2 个答案:

答案 0 :(得分:8)

解决这个问题的两种方法:

  1. 使用此粗略方法调用将Robolectric的Build.SDK_INT值更改为实际值:RobolectricTestRunner.setStaticValue(Build.VERSION.class, "SDK_INT", 15);
  2. 编写自己的ActionBarSherlock实现,该实现从现有的一个实现扩展,并使用@ActionBarSherlock.Implementation(api = 0)进行注释(不要忘记同时调用ActionBarSherlock.registerImplementation)。

答案 1 :(得分:1)

对于较新版本的 Robolectric 2.2 ,您可以更改 Build.VERSION.SDK_INT 值,如下所示:

Robolectric.Reflection.setFinalStaticField(Build.VERSION.class, "SDK_INT", 15);