2012-03-07 3 views
1

Comment est-il possible de contrôler le cycle de vie d'une activité Android à partir d'un TestCase à l'aide d'Instrumentation?Instrumentation: contrôle du cycle de vie

Sur le official documentation, il est indiqué "Contrôle du cycle de vie: Avec l'instrumentation, vous pouvez démarrer l'activité testée, la mettre en pause et la détruire, en utilisant les méthodes fournies par les classes de cas de test.". Bien sûr, en utilisant ce testcase, l'Acitivity est automatiquement créé lors de l'appel de getActivity() et il est arrêté après chaque test. Mais comment contrôler le cycle de vie de manière externe afin de vérifier si toutes les méthodes du cycle de vie sont implémentées correctement?

Les méthodes de cycle de vie onActivityXXX aident simplement à appeler les méthodes respectives, mais ne provoquent pas l'arrêt ou l'arrêt de l'activité. Quelqu'un peut-il m'aider s'il vous plaît et me dire quelles méthodes je dois utiliser?

Existe-t-il des méthodes pour tester l'implémentation du cycle de vie d'une application Android?

Répondre

1

C'est ne vous donnera un contrôle total sur le cycle de vie, mais il est l'exemple trouvé here:

// Start the main activity of the application under test 
    mActivity = getActivity(); 

    // Get a handle to the Activity object's main UI widget, a Spinner 
    mSpinner = (Spinner)mActivity.findViewById(com.android.example.spinner.R.id.Spinner01); 

    // Set the Spinner to a known position 
    mActivity.setSpinnerPosition(TEST_STATE_DESTROY_POSITION); 

    // Stop the activity - The onDestroy() method should save the state of the Spinner 
    mActivity.finish(); 

    // Re-start the Activity - the onResume() method should restore the state of the Spinner 
    mActivity = getActivity(); 

    // Get the Spinner's current position 
    int currentPosition = mActivity.getSpinnerPosition(); 

    // Assert that the current position is the same as the starting position 
    assertEquals(TEST_STATE_DESTROY_POSITION, currentPosition); 

qui vous donne un certain contrôle sur les principaux événements du cycle de vie. Je suis en train de prendre en charge le même problème, je cherche dans le robotium qui devrait aider