Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Robotium_constructor deprecated message at NotepadTest method for super

I am trying to write a sample test for notepad application. In the following code , I get a warning and I'm unable to run the test. Please help me resolve this. The warning says "The constructor ActivityInstrumentationTestCase2<NotesList>(String, Class<NotesList>) is deprecated" and execution in Eclipse stops at testAddNote();. Please revert back in case u need any logcat logs.

package com.example.android.notepad.test;
import com.example.android.notepad.*;
import com.jayway.android.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.*;

public class NotePadTest extends ActivityInstrumentationTestCase2<NotesList> {
    private Solo solo;
    public NotePadTest() {
        super("com.example.android.notepad", NotesList.class);
    }   
    @Override
    public void setUp() throws Exception {
        solo = new Solo(getInstrumentation(), getActivity());
    }
    @Smoke
    public void testAddNote() throws Exception {
        solo.clickOnButton(0);
        //Assert that NoteEditor activity is opened
        solo.assertCurrentActivity("Expected NoteEditor activity", "NoteEditor"); 
        //In text field 0, add Note 1
        solo.enterText(0, "Note 1");
        solo.goBack(); 
        //Clicks on menu item
        solo.clickOnMenuItem("Add note");
        //In text field 0, add Note 2
        solo.enterText(0, "Note 2");
        //Go back to first activity named "NotesList"
        solo.goBackToActivity("NotesList"); 
        boolean expected = true;
        boolean actual = solo.searchText("Note 1") && solo.searchText("Note 2");
        //Assert that Note 1 & Note 2 are found
        assertEquals("Note 1 and/or Note 2 are not found", expected, actual); 
    }

    @Override
    public void tearDown() throws Exception {
        //Robotium will finish all the activities that have been opened
        solo.finishOpenedActivities();
    }
}

This is the StackTrace

java.lang.NoClassDefFoundError: com.jayway.android.robotium.solo.Solo
at com.example.android.notepad.test.NotePadTest.setUp(NotePadTest.java:37)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:537)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1551)
like image 694
srinivasv Avatar asked Jun 19 '26 20:06

srinivasv


2 Answers

"NoClassDefFoundError" is due to android sdk upgrade to version 17 . we need to check robotium in "order and export" tab in java build path.But i dint still find solution for constructor deprecated warring .

like image 50
srinivasv Avatar answered Jun 22 '26 10:06

srinivasv


I know its too late. But It may help others. I also had the same problem. I resolved it by only writing the class name under super.

Instead of

super("com.example.android.notepad", NotesList.class);

write only

super(NotesList.class);
like image 34
Sariban D'Cl Avatar answered Jun 22 '26 11:06

Sariban D'Cl



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!