2017-01-31 2 views
0
a besoin paramètres @

un certain contexte:Android Test Espresso avec contexte

J'écris un test unitaire qui a besoin du contexte Android pour charger les polices personnalisées à partir des actifs /, doivent donc utiliser un test Espresso. (right?)

Je souhaite utiliser la construction @Parameters pour générer des tests avec mes entrées fournies et les sorties attendues. La chose est que j'ai besoin du contexte Android dans la méthode @Parameters -annotated.

Le problème:

La méthode @Parameters -annotated est appelée d'abord, avant même la @BeforeClass et @ClassRule.

Comment puis-je résoudre ce problème?

Répondre

0

J'ai résolu le problème, donc je voulais partager la solution au cas où quelqu'un d'autre rencontre la même chose.

Ce que je retarde essentiellement l'initialisation des Polices de caractères jusqu'à ce que le contexte est disponible: Dans la méthode @Parameters je passe les noms (Strings) des Polices de caractères, et dans la méthode @Test -Lorsque le contexte est disponible- I créez-les.

Mon prochain numéro de synchronisation était qu'une maquette dont je avais besoin en même temps n'a pas encore été initialisés, parce que le MockitoAnnotations.initMocks() est appelé dans ma méthode @Setup qui est appelée après la méthode @Parameters. Mais j'ai simplement omis le @Mock et utilisé le oldskool Mockito.mock(Paint.class) dans ma méthode de test.