J'ai une application Quiz utilisant Realm db. Chaque fois que l'utilisateur sélectionne une réponse, il clique sur un bouton et un nouveau texte pour la question apparaît. C'est jusqu'à ce qu'elle atteigne la fin où je commence une nouvelle activité et affiche un score basé sur les bonnes réponses.
Comment dois-je commencer/tester (avec Espresso je suppose) cette activité sans avoir à saisir manuellement chaque fois toutes les réponses et cliquer sur le bouton après chaque réponse jusqu'à ce que j'atteigne la dernière?
Ce dont j'ai besoin, c'est de passer des données fictives à une variable et de faire une intention, mais je ne sais pas comment et je ne peux rien trouver de similaire dans Espresso
Vous pouvez lancer votre prochaine activité avec une intention personnalisée comme celle-ci:
@RunWith(AndroidJUnit4.class)
public class NextActivityTest {
@Rule
public ActivityTestRule<NextActivity> activityRule
= new ActivityTestRule<>(
NextActivity.class,
true, // initialTouchMode
false); // launchActivity. False to customize the intent
@Test
public void intent() {
Intent intent = new Intent();
intent.putExtra("your_key", "your_value");
activityRule.launchActivity(intent);
// Continue with your test
}
}
Exemple complet: https://github.com/chiuki/Android-test-demo
Article de blog: http://blog.sqisland.com/2015/04/espresso-21-activitytestrule.html
Tout d'abord, voyez cette question: Android Monkey Runner
Ensuite, vous pouvez voir ces guides: Monkey Runner
Cela vous permet d'utiliser Python pour tester votre activité Android en dehors de votre source. Ainsi, vous pouvez déclencher des choses et accéder à des activités spécifiques comme ceci:
#! /usr/bin/env monkeyrunner
from com.Android.monkeyrunner import MonkeyRunner, MonkeyDevice
from random import randint
print "get device"
device = MonkeyRunner.waitForConnection()
package = 'my.packaget'
activity = 'my.package.activity'
runComponent = package + '/' + activity
device.startActivity(component=runComponent)
#use commands like device.touch and device.drag to simulate a navigation and open my activity
#with your activity opened start your monkey test
print "start monkey test"
for i in range(1, 1000):
#here i go emulate only simple touchs, but i can emulate swiper keyevents and more... :D
device.touch(randint(0, 1000), randint(0, 800), 'DOWN_AND_UP')
print "end monkey test"
enregistrez-le puis exécutez: monkeyrunner test.py