/app/src/androidTest/java/MyHomeActivityTest.java の MyHomeActivityTest.Java として、androidTest フォルダーに 1 つのテスト ケースを作成しました。
そして、 /app/src/main/java/HomeActivity.java に HomeActivity.java クラスが 1 つあります。
私の HomeActivity.java クラスでは、ビューインジェクションにバターナイフを使用しています。MyHomeActivityTest.java で HomeActivity のテスト ケースを実行しています。
しかし、テストケースを実行しているとき、テストは正常に実行されていますが、バターナイフの NoClassDefFound エラーが発生しています。
私のプロジェクトクラスは
MyHomeActivityTest.java
public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> {
private Solo solo;
public HomeActivityTest() {
super(HomeActivity.class);
}
public void setUp() throws Exception {
super.setUp();
solo = new Solo(getInstrumentation());
getActivity();
}
@Override
public void tearDown() throws Exception {
solo.finishOpenedActivities();
super.tearDown();
}
public void testRun() {
solo.assertCurrentActivity("Home activity class",HomeActivity.class);
final LinearLayout homeScreen =
(LinearLayout) solo.getCurrentActivity().findViewById(R.id.home_screen);
assertEquals(View.GONE, homeScreen.getVisibility());
}
}
build.gradle
dependencies{
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.jakewharton:butterknife:5.1.1'
compile 'com.squareup.picasso:picasso:1.1.1'
androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.1'
}
MyHomeActivityTest クラスを実行するとすぐに、このクラスのスーパー クラスは、butterKnife を使用している HomeActivity.class であるため、NoClassDefFoundError が返されます。