Ошибка "не имеет публичного 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); } } 

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

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

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

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

Следующим:

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

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