## Techniques for testing Android fragments

By admin | March 4, 2013

How to test a fragment-based Android application:

• Switching fragments directly from a sub-fragment (inside backstack) – This tests how well your fragment switching code deals with backstacks while switching fragments.
• Switching from another top level fragment – This tests your fragment switching code.
• Turning off the screen – This tests your onResume() and onResumeFragments() handlers
• Opening another activity from a fragment – Same as above
• Opening another activity from the action bar – Same as above

Preferably test in the “don’t keep activities” mode, as this will root out a ton of bugs related to the Android lifecycle – i.e. when Android decides to kill an old activity of yours.

Case Study:

User complaint: http://forum.videolan.org/viewtopic.php?f=35&t=108743

The story so far… old versions of the VLC for Android beta, up to 0.0.10, suffer from a bug, where trying to delete something in another fragment causes the other (non-visible) fragment to receive the onContextItemSelected() call. After setting user visibility hints for that bug, a series of fragment related bugs appeared, mostly involving IllegalStateException in android.support.v4.app.FragmentManager because of duplicate fragments being added.

The problems were caused when Android decided to kill unused background activities. The interface code would try to recreate and re-add() fragments, even though Android had automatically recreated them via “android.support.fragments” in the onCreate() bundle. This would manifest after opening another activity, shutting the screen off, or having a system popup appear.

The solution was to keep better track of currently-added fragments, as member variables of the main activity may not necessarily be kept after the activity was hidden. To solve the problem, a check was implemented in onRestoreFragments() to ‘recall’ fragments that were already added. This fixed the problem permanently.

The moral of the story: watch and manage fragments very carefully in order to prevent problems.

Topics: Mobile | 5 Comments »

### 5 Responses to “Techniques for testing Android fragments”

1. b+ mushrooms Says:
October 20th, 2021 at 03:44

[…] Read More here on that Topic: compdigitec.com/labs/2013/03/04/techniques-for-testing-android-fragments/ […]

2. sbo Says:
November 18th, 2021 at 19:50

3. คาสิโนออนไลน์เว็บตรง Says:
November 27th, 2021 at 18:34

[…] Information to that Topic: compdigitec.com/labs/2013/03/04/techniques-for-testing-android-fragments/ […]

4. 로켓툰 Says:
January 7th, 2022 at 15:05

[…] Here you can find 631 additional Info on that Topic: compdigitec.com/labs/2013/03/04/techniques-for-testing-android-fragments/ […]

5. relx Says:
January 10th, 2022 at 20:25