2017-12-03 7 views
1

AndroidスタジオでRobolectricテストを初めて、テストを実行しようとすると同じエラーが表示され、android.content.res.Resources$NotFoundException: Unable to find resource ID #0x0 in packagesと表示されます。私は、JUnit作業ディレクトリが$ MODULE_DIR $であることを確認しましたが、それでも動作しませんでした。私のbuild.gradleファイルにtestOptions.unitTests.includeAndroidResourcesを追加しても何もしません。テストファイルの外観は次のとおりです。Robolectricがテスト実行時にリソースIDを見つけることができません

@RunWith(RobolectricTestRunner.class) 
@Config(constants = BuildConfig.class, sdk = Build.VERSION_CODES.LOLLIPOP) 
public class StartActivityTests { 

    StartActivity activity; 

    @Before 
    public void setUp() throws Exception { 
     activity = Robolectric.buildActivity(StartActivity.class) 
      .create() 
      .resume() 
      .get(); 
    } 

    @Test 
    public void shouldNotBeNull() throws Exception 
    { 
     assertNotNull(activity); 
    } 

    @Test 
    public void clickingNewGame_shouldStartAvatarRoomActivity() { 
     StartActivity activity = Robolectric.setupActivity(StartActivity.class); 
     activity.findViewById(R.id.newUserButtonFirstPage).performClick(); 

     Intent expectedIntent = new Intent(activity, AvatarRoomActivity.class); 
     Intent actual = ShadowApplication.getInstance().getNextStartedActivity(); 
     assertEquals(expectedIntent.getComponent(), actual.getComponent()); 
    } 
} 

助けてください!大変感謝しています!

答えて

0

build.gradleファイルでSDKを27に変更し、Robolectricテストに成功しました。

0

あなたはアンドロイドのGradleプラグイン3.0以上を使用している場合は、build.gradle

testOptions { 
    unitTests { 
     includeAndroidResources = true 
    } 
} 

やユニットテストで見つけることができていないAndroidのリソースのアンドロイドブロックに次のコードを追加する必要があります。

関連する問題