Espresso startActivity das kommt auf Vorsatz

Ich habe die folgende situation.

Meiner Tätigkeit hat sich ein fragment, das hängt von einem Serializable Objekt. Hier ist mein onCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    MyObject myObj = (MyObj) getIntent().getSerializableExtra("myobj");

    if(myObj != null) {
        FragmentManager manager = getSupportFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        transaction.add(R.id.container, MyFragment.newInstance(myObj));
        transaction.commit();
    }
}

Aber in meinen Espresso-test, ich kann einfach nicht passieren der Absicht, die Aktivität, bevor es erstellt wird. Ich habe versucht, mit setActivityIntent mehrere Möglichkeiten, aber kann nicht herausfinden, wie es funktioniert.

Hier ist mein letzter Versuch:

import android.content.Intent;
import android.support.test.InstrumentationRegistry;
import android.support.test.espresso.Espresso;
import android.test.ActivityInstrumentationTestCase2;
import org.junit.Before;

import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static android.support.test.espresso.matcher.ViewMatchers.withText;

public class MyActivityTest extends

     ActivityInstrumentationTestCase2<MyActivity> {

        private MyActivity activity;
        private MyObject myObj;

        public MyActivityTest() {
            super(MyActivity.class);
        }

        @Before
        protected void setUp() throws Exception {
            super.setUp();
            injectInstrumentation(InstrumentationRegistry.getInstrumentation());
            myObj = MyObject.mockObject();
            Intent i = new Intent();
            i.putExtra("myobj", myObj);
            setActivityIntent(i);

        }

        public void testName(){
            Espresso.onView(withId(R.id.name)).check(matches(withText(myObj.getObjName())));
        }

    }

Ich gesucht habe, eine Menge, aber nichts funktioniert. MyObject ist immer null im test. Ich denke, das sollte einfach sein. Was bin ich vermisste?

Welche Fehlermeldung bekommen Sie?
Sie brauchen nicht, @Vor, denn dies ist ein JUnit-3-test nicht JUnit 4 test.
Gelöst war das problem mit meiner mock... Sorry für die Mühe.

InformationsquelleAutor rafael | 2015-07-31

Schreibe einen Kommentar