使用Robolectric,我對android非常陌生。我使用Activity創建了第一個測試課程。它很好地工作。 現在我想對片段進行測試。java.lang.IllegalStateException:活動已被破壞
@RunWith(RobolectricTestRunner.class)
public class LoginFragmentTest {
private LoginFragment fragment;
@Before
public void setup() {
fragment = new LoginFragment();
startFragment(fragment);
assertThat(fragment, notNullValue());
assertThat(fragment.getActivity(), notNullValue());
}
private void startFragment(LoginFragment fragment) {
FragmentManager fragmentManager = new FragmentActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(fragment, null);
fragmentTransaction.commit();
}
@Test
public void login() {
EditText idEditText = (EditText)fragment.getActivity().findViewById(R.id.main_id);
assertThat(idEditText, notNullValue());
}
}
這是我第一個Fragment類的測試類。它拋出
"java.lang.IllegalStateException: Activity has been destroyed" in startFragment#fragmentTransaction.commit().
任何人都知道如何解決這個問題?
您可以事先從https://github.com/msbaek/frame-test
由於發現整個源代碼!
哼,不要在提交碎片事務之前破壞你的活動? – njzk2 2013-03-22 10:31:51