2012-11-05 6 views
1

Je teste la base de données à l'aide de la super classe ProviderTestCase2. Voici mon extrait de code:Android ProviderTestCase2: échoue en mode Exécution, passe en mode débogage

public class MyProviderTest extends ProviderTestCase2<MyProvider>{ 

    private static MockContentResolver resolver; 
    private static IsolatedContext context; 
    public MetaDataProviderTest() { 
    super(MyProvider.class, Provider.AUTHORITY); 
} 


@Override 
protected void setUp() throws Exception { 
    try{ 
     super.setUp(); 
     resolver = getMockContentResolver(); 


    } catch(Exception e){ 

    } 

} 


} 

    public void testfirst(){ 

    Cursor cursor = resolver.query(ProviderContract.Channels.CHANNEL_URI,null,null,null,null); 
     .... 
    } 
    } 

Lorsque je débogue le code ci-dessus Im obtenir le résultat passé. Quand je l'exécute, j'obtiens le curseur Null impliquant qu'il n'y a pas de telle table comme canal. S'il vous plaît aider à résoudre ce problème. Où est-ce que je me suis trompé?

Répondre

0

Il y avait un problème de concurrence. Délai introduit dans le programme d'installation(). Ça fonctionne bien. Mais je ne sais pas si c'est la solution exacte.

0

vous devez écrire le code:

MockContentResolver.addProvider(authority, yourprovider); 

ont alors un essai

Questions connexes