Consecutive Android Junit tests do not reflect the real data in the underlying database
It appears that a ContentProvider
's lifecycle is tied to that of an Application
not of the Activity
that acesses it. Also, from what I can tell, ActivityInstrumentationTestCase2
creates a single Application
for all the tests; only the Activity
is destroyed and restarted for each test. This means that the each test will share the same ContentProvider
. This means that the database file is opened with the first access by the ContentProvider
and closed only after all test methods in the ActivityInstrumentationTestCase2
have finished. Since the database file remains open between test cases, the data can be accessed even after the file is deleted from the underlying file system. My solution was to delete the rows of the database individually rather than deleting the entire database.