Pracuję z Androidem Studio i muszę dodać testy jednostkowe do mojego projektu.
Przeczytałem różne tutoriale, ale nic mnie nie skrzywdziło.
Mój problem jest:
TestXMLParser.java:
AssertionFailedError: <class> nie ma publicznego konstruktora
public class TestXMLParser extends ActivityInstrumentationTestCase2<HomePageActivity> {
public TestXMLParser(Class<HomePageActivity> activityClass) {
super(activityClass);
}
@Override
public void setUp() throws Exception {
super.setUp();
//Controller.init((Activity)getContext());
}
@Override
public void tearDown() throws Exception {
super.tearDown();
}
public void testTrue() throws Exception {
assertTrue(true);
}
...
}
Gdy go widzę komunikat:
junit.framework.AssertionFailedError: Class cz.cvut.kosapp.jUnitTests.TestXMLParser has no public constructor TestCase(String name) or TestCase()
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661)
ja naprawdę nie wiem, dlaczego. Inne testy JUnit działa dobrze, na przykład podczas korzystania z:
public class TestXMLParser extends AndroidTestCase { ...
w nagłówku, to działa i testy są wyświetlane poprawnie.
Ale Potrzebuję użyć kontekstu (jako działania), aby uruchomić inny kod (w klasie kontrolera).
Czy masz pojęcie, jak to naprawić?
Dziękuję za uwagi.
Dzięki za komentarz, ale nie jest to poprawna odpowiedź. Ten konstruktor nie jest dostępny w ActivityInstrumentationTestCase2. – dusanjencik
Masz rację - ActivityInstrumentationTestCase2 nie ujawnia domyślnego konstruktora. Zamiast tego tworzysz domyślny konstruktor dla swojej klasy, a następnie wywołujesz super z poprawnymi parametrami dla jednego z konstruktorów ActivityInstrumentationTestCase2 - jednego z nich, który akceptuje klasę - i przekazujesz testowaną klasę. Znalazłem też coś podobnego: http://stackoverflow.com/questions/2346734/trying-to-run-android-junit-tests-in-eclipse-fails –
Android Studio porusza się tak szybko, że połowa opublikowanych książek Wydałeś pieniądze i wiele przykładów internetu po prostu nie działa. – nimbusgb