私はMapFragmentで構成されるクラスを持っています。私はMapFragmentがnullの場合、私が使用している場合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テスト用MapFragmentをよく記述しているリソースはありますか?
のですか?それは活動の一部ではないのですか? –
@EugenMartynovフラグメントがアクティビティで初期化されます。私はCamaraUpdateFactoryが初期化されていない取得し、私はそれをデバッグしたときにGoogleMapのオブジェクトはnullです。だから私は断片が正しく初期化されていないと思うのです。 – sayvortana
私は 'startFragment(mMainActivity.mMapFragment);'について話しています。フラグメントは 'onCreate()'ですでに結ばれていますか? –