Тестване на еспресо за android

Пускам тестовете в Android Studio, изпълнявам задача - "тест". Тестът ми се провали, моят html доклад подробно:

   junit.framework.AssertionFailedError: Class Test has no public constructor TestCase(String name) or TestCase()
        at junit.framework.Assert.fail(Assert.java:57)
        at junit.framework.TestCase.fail(TestCase.java:227)
        at junit.framework.TestSuite$1.runTest(TestSuite.java:100)
        at junit.framework.TestCase.runBare(TestCase.java:141)
        at junit.framework.TestResult$1.protect(TestResult.java:122)
        at junit.framework.TestResult.runProtected(TestResult.java:142)
        at junit.framework.TestResult.run(TestResult.java:125)
        at junit.framework.TestCase.run(TestCase.java:129)
        at junit.framework.TestSuite.runTest(TestSuite.java:255)
        at junit.framework.TestSuite.run(TestSuite.java:250)
        at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84)

Моят изходен файл:

    @LargeTest
public class Test extends ActivityInstrumentationTestCase2<MainActivity>{

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

    @Override
    public void setUp() throws Exception {
        super.setUp();
        getActivity();
    }

    public void testCheck(){
        onView(withId(R.id.text))
                .check(matches(withText("Hello world!")));
    }
}

person harmashalex    schedule 17.06.2014    source източник


Отговори (2)


Проблемът е точно това, което се казва в съобщението за грешка: Вие не сте предоставили конструктор без параметри.

Добавете този конструктор към вашия тестов клас:

public Test() {
    super(MainActivity.class);
}
person haffax    schedule 17.06.2014
comment
Пробвах, но и тестът се провали. Доклад: junit.framework.AssertionFailedError: Изключение в конструктора: testCheck (java.lang.RuntimeException: Stub! в android.test.InstrumentationTestCase.‹init›(InstrumentationTestCase.java:5) - person harmashalex; 17.06.2014
comment
Звучи сякаш използвате стандартния JUnit тестов инструмент вместо GoogleInstrumentationTestRunner - person ivagarz; 17.06.2014
comment
Не, използвам GoogleInstrumentationTestRunner.Code от моя gradle файл: testInstrumentationRunner com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner - person harmashalex; 18.06.2014

Прототипът на тестов клас с еспресо трябва да бъде:

public class MainTest extends
        ActivityInstrumentationTestCase2<MainActivity>{

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

    @Override
    public void setUp(){
        getActivity();
    }

    @Override
    public void tearDown(){
    }

    public void test1(){

    }

    public void test2(){

    }
}
person xurxodev    schedule 05.12.2014