У меня есть следующая ситуация.Espresso startActivity, который зависит от намерения
В моей деятельности есть фрагмент, который зависит от объекта Serializable. Вот мой 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();
}
}
Но в моем тесте Эспрессо я просто не могу передать намерение деятельности, прежде чем он создан. Я попытался с setActivityIntent несколькими способами, но не могу понять, как заставить его работать.
Вот моя последняя попытка:
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())));
}
}
Я искал много, но ничего не работает. MyObject
всегда имеет значение null в тесте. Я думаю, это должно быть просто. Что мне не хватает?
Какую ошибку вы получаете? – yogurtearl
вам не нужно @ Прежде, потому что это тест JUnit 3, а не тест JUnit 4. – yogurtearl
Решенный, проблема была в моей манере ... Извините, что беспокоиться. – rafael