Ошибка "не имеет публичного TestCase (имя строки) или TestCase() в тесте Junit

Я начинаю тестировать андроид junit. Я следую этому учебнику, но получаю эту ошибку

junit.framework.AssertionFailedError: Class com.example.projectfortest.test.MainActivityTest has no public constructor TestCase(String name) or TestCase()
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)

Это мой код:

public class MainActivityTest extends
        ActivityInstrumentationTestCase2<MainActivity> {

    private MainActivity mMainActivity;
    private TextView mFirstTestText;
    private String expected, actual;

    public MainActivityTest(Class<MainActivity> activityClass) {
        super(activityClass);
    }

    @Override
    protected void setUp() throws Exception {
        super.setUp();

        mMainActivity = getActivity();
        mFirstTestText = (TextView) mMainActivity.findViewById(R.id.txt1);

        expected = mMainActivity.getString(R.string.txt1_test);
        actual = mFirstTestText.getText().toString();
    }

    public void testPreconditions() {
        assertNotNull("mMainActivity is null", mMainActivity);
        assertNotNull("mFirstTestText is null", mFirstTestText);
    }

    public void testMyFirstTestTextView_labelText() {
        assertEquals(expected, actual);
    }
}

Я не видел ничего плохого в своем коде. Пожалуйста, помогите

Ответ 1

Как говорит Exception, добавьте конструктор по умолчанию в свой класс. Это необходимо для инициализации с помощью среды тестирования. Замените свой конструктор:

public MainActivityTest(Class<MainActivity> activityClass) {
    super(activityClass);
}

следующим образом:

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

Этот конструктор не имеет аргументов по мере необходимости в рамках фреймворка и показывает в списке кода ваш учебник:

Ответ 2

Если ваша проблема еще не решена: Вы можете попробовать эту аннотацию, добавив

 @RunWith (JUnit4.class)