J'ai trouvé ce example où ils ont utilisé PowerMock et EasyMock pour copier/masquer les classes Menu et MenuItem pour android. J'ai essayé de faire quelque chose de similaire avec PowerMock et Mockito avec la classe Activity.Tentative de remplacement de android Classe d'activité en utilisant PowerMockito throws RuntimeException "Stub!"
Je comprends que beaucoup de méthodes sont finales et que dans Android.jar, elles lancent simplement RuntimeException ("Stub!").
Je comprends également que ce test n'est pas complet mais je veux juste voir s'il est possible de se moquer de la classe android Activity.
Mais étant donné que PowerMock vous permet de simuler des classes avec des méthodes finales, ce code ne devrait-il pas fonctionner?
@RunWith(PowerMockRunner.class)
@PrepareForTest(Activity.class)
public class MyTestCase extends TestCase {
public void testPlease_JustWork() throws Exception {
Activity mockActivity = PowerMockito.mock(Activity.class);
PowerMockito.when(mockActivity.getTitle()).thenReturn("Title");
}
}
Je pense que le RuntimeException ne se produirait plus et « Titre » serait retourné, mais il jette encore l'exception.
J'ai essayé toutes sortes de choses différentes comme doReturn("Title").when(mockActivity).getTitle();
et suppress(constructor(Activity.class));
que je fais quelque chose de mal ou est-ce tout simplement pas possible?
Je vais essayer ... – bytebender
Pas de dés, pouvez-vous me montrer à quoi ressemblent vos lignes d'importation? – bytebender
J'ai téléchargé l'ensemble du projet eclipse sur http://maik.0x2a.at/PowerMockTests.zip. Vous devrez peut-être adapter le chemin d'accès à android.jar – crazymaik