Je suis en train de tester mon DB en utilisant Comment tester vos fournisseurs de contenu? P>
Merci p> ProviderTestCase2
MockContentResolver code> (ou celui créé avec
newResolverWithContentProviderFromSql code>), je reçois un
UnsupportedOperationException code>. Ceci est documenté pour le MockContentResolver comme un comportement normal. En tant que tel, je suis un peu incertain sur le but du ProviderTestCase2. P>
4 Réponses :
EXTENDRE PROVETERTESTASE2 pour remplacer GETMOCKCONTRASOLVER () et renvoyer votre propre classe dérivée de MockContentrresolver.
public class MyProviderTestCase2 extends ProviderTestCase2 { @Override public MockContentResolver getMockContentResolver () { return new MyMockContentResolver(); } }
Aussi loin que j'ai trouvé, la mise en place du résolveur de contenu simulé n'est pas explicitement nécessaire - je pourrais superviser les cas où il est (peut-être corriger la résolution du fournisseur via Uri, des tours qui ont besoin de corect gettype () fonctionnent), mais pour moi , il suffisait de faire quelque chose comme ceci:
Il n'y a pas beaucoup de code de code sur la classe ProviderTestCase2 sur Internet. C'est très utile.
Dans Documentation Android , ils recommandent de ne pas utiliser directement votre fournisseur de contenu et passer à travers un résolveur de contenu à la place. Il suffit de lire mon message pour voir un exemple plus adéquat de la manière de tester un fournisseur de contenu.
i Ajouter cette entrée, car je pense que cela peut aider les programmeurs à tester leur fournisseur de contenu.
Imaginez que votre fournisseur de contenu est appelé MyProvider et que vous avez une classe de contrat appelée MyProviderContrate définissant certaines constantes. P> < P> Tout d'abord, vous écrirez une classe d'essai appelée puis, au lieu d'utiliser directement votre fournisseur (éviter d'utiliser alors vous pouvez ajouter autant de méthodes de test que vous le souhaitez, en utilisant un Résolution du contenu au lieu de votre fournisseur de contenu directement, comme cela ferait des utilisateurs de votre fournisseur de contenu. P> P> myProviderTestCase code> qui hérite de
proviseurestcase2
super code> p>
getProvider () code> Comme les utilisateurs de votre fournisseur de contenu ne l'accédent pas directement), utilisez le
getmockcontentresolver () code> pour obtenir une référence à un résolveur de contenu, puis appelez les méthodes de ce contenu. Résolveur (
Query Code>,
Insérer code>, etc.). Dans le code suivant, je montre comment tester la méthode
insert code>. P>
Comment pour vous courir Fournisseur d'est? Test d'unité Android Créer une variante ou un test d'instrumentation?
[pas directement lié à la question, mais pour une référence future pour quiconque est ici à la recherche de la manière de tester les fournisseurs de contenu dans Android] em> Si vous travaillez avec API 28 ou supérieur, FrederestCase2 a été retiré de ClassPath par défaut de SDK Android, vous devez donc raffiner manuellement dans ces classes de votre fichier Build.Gradle. p> alors vous pouvez simplement prolonger ProviderTestCase2 dans votre cas de test p> Exemple de travail: HTTPS: //github.com/artenes/android-Content-Provider-Test-Sample P> P>