Java 方法设置“;“不被嘲笑”;尝试在Android下测试按钮时出错

Java 方法设置“;“不被嘲笑”;尝试在Android下测试按钮时出错,java,android,unit-testing,android-activity,Java,Android,Unit Testing,Android Activity,我正在尝试编写一个Android单元测试,测试按下MainActivity中的ImageButton是否会激发启动另一个活动(Activity2)的意图。这是我的密码: public class MainActivityTest extends ActivityUnitTestCase<MainActivity> { private Intent activityLaunchIntent; public MainActivityTest(){ sup

我正在尝试编写一个Android单元测试,测试按下MainActivity中的ImageButton是否会激发启动另一个活动(Activity2)的意图。这是我的密码:

public class MainActivityTest extends ActivityUnitTestCase<MainActivity> {
    private Intent activityLaunchIntent;

    public MainActivityTest(){
        super(MainActivity.class);
    }

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        activityLaunchIntent = new Intent(getInstrumentation().getTargetContext(), MainActivity.class);
    }

    public void testPreconditions() {
        assertNotNull(activityLaunchIntent);
    }

    /**
     * Tests that the button to launch Activity2 fires the correct Intent.
     */
    @MediumTest
    public void testLaunchButton_shouldLaunchActivity2() {
        startActivity(activityLaunchIntent, null, null);
        final ImageButton launchActivity2Button = (ImageButton) getActivity().findViewById(R.id.launchButton);
        launchButton.performClick();

        // Ensure that the intent to start the Activity2 has been launched 
        final Intent launchActivity2Intent = getStartedActivityIntent();
        assertNotNull(launchActivity2Intent);
        assertTrue(launchActivity2Intent.getClass().equals(SettingsActivity.class));
        assertTrue(isFinishCalled());
    }
}
访问时,我在build.gradle文件中添加了以下内容:

android {
  // ...
  testOptions { 
    unitTests.returnDefaultValues = true
  }
}
但是,现在我得到了以下错误:

java.lang.RuntimeException: Method setUp in android.test.ActivityUnitTestCase not mocked. See http://g.co/androidstudio/not-mocked for details.
    at android.test.ActivityUnitTestCase.setUp(ActivityUnitTestCase.java)
java.lang.NullPointerException
    at com.example.unittesting.MainActivityTest.setUp(MainActivityTest.java:24)
顺便提一下,MainActivityTest.java的第24行是:

activityLaunchIntent = new Intent(getInstrumentation().getTargetContext(), MainActivity.class);
谁能告诉我这里发生了什么事?这是一个简单的解决方案吗?还是我用了一种完全错误的方式。提前感谢您的帮助