Working with Robolectric, I am very new to Android. I made the first test class using Activity. It worked beautifully. Now I want to do a test for the fragment.
@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()); } }
This is my first test class for the Fragment class. He throws
"java.lang.IllegalStateException: Activity has been destroyed" in startFragment#fragmentTransaction.commit().
Does anyone know how to fix this?
You can find the whole source from https://github.com/msbaek/frame-test
Thanks in advance!
source share