У меня есть класс, состоящий из MapFragment. Я в состоянии проверить, если MapFragment является недействительным сКак использовать Robolectric для тестирования Активность состоит из MapFragment?
startFragment(mapFragment);
assertThat(mapFragment.getView()).isNotNull();
assertThat(mapFragment.getActivity()).isNotNull();
assertThat(mapFragment.getView().findViewById(R.id.mapFragment)).isNotNull();
Когда я использую:
startVisibleFragment (MapFragment);
Существует ошибка происходит:
java.lang.NullPointerException: CameraUpdateFactory не инициализируется
Вот полный код:
Цель состоит в том, что если пользователь нажимает на текущую кнопку местоположения, тогда я проверяю правильность местоположения по умолчанию и масштабирования.
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = ConsumerBuildConfig.class, sdk = 21)
public class MainActivityUnitTesting {
private MainActivity mMainActivity;
private ImageButton currentLocBtn;
@Before
public void setUp() throws Exception {
mMainActivity = Robolectric.buildActivity(MainActivity.class).create().get();
currentLocBtn = (ImageButton) mMainActivity.findViewById(R.id.currentLocBtn);
}
@Test
public void test_MainActivityTestDefaultLocation(){
startFragment(mMainActivity.mMapFragment);
currentLocBtn.performClick();
assertEquals(mMainActivity.mMapFragment.getDefaultLocation(), new LatLng(39.833333, -98.583333));
assertEquals(mMainActivity.mMapFragment.getmDefaultZoom(), 16);
}
}
- ли я что-то пропустил?
- Есть ли какие-либо ресурсы, которые хорошо описывают Robolectric testing MapFragment?
Почему вам нужно начать фрагмент? Разве это не часть деятельности? –
@EugenMartynov фрагмент будет инициализирован в активности. Я продолжаю получать CamaraUpdateFactory, не инициализируется, и когда я отлаживаю его, объект GoogleMap имеет значение null. Вот почему я думаю, что фрагмент не инициализирован должным образом. – sayvortana
Я говорю о 'startFragment (mMainActivity.mMapFragment);'. Является ли фрагмент уже прикрепленным в 'onCreate()'? –