Essayer d'exécuter le test d'instrumentation sur AS.
coincé avec cette erreur:
Java.lang.IllegalStateException: impossible d'initialiser le plug-in: interface org.mockito.plugins.MockMaker at org.mockito.internal.configuration.plugins.PluginLoader $ 1.invoke (PluginLoader.Java:66) at Java.lang.reflect.Proxy. invoquer (Proxy.Java:393) à $ Proxy4.isTypeMockable (Source inconnue)
ExampleInstrumentedTest.Java
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Mock
Context context;
@Before
public void init(){
MockitoAnnotations.initMocks(this);
}
@Test
public void testDisabledFlag() {
ChanceValidator chanceValidator = new ChanceValidator(context);
Validator.ValidationResult result = chanceValidator.validate(2);
assertEquals(result, Validator.ValidationResult.NO_ERROR);
}
}
build.gradle
apply plugin: 'com.Android.application'
Android{
..
defaultConfig {
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
testOptions {
unitTests.returnDefaultValues = true
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
// Unit testing dependencies
testCompile 'junit:junit:4.12'
// Set this dependency if you want to use the Hamcrest matcher library
testCompile 'org.hamcrest:hamcrest-library:1.3'
// more stuff, e.g., Mockito
androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.Android.support', module: 'support-annotations'
})
compile 'com.Android.support:appcompat-v7:25.1.0'
compile project(':mortar')
compile project(':mockito-core-2.6.6')
}
pdate: Après avoir commenté la ligne-
MockitoAnnotations.initMocks (this);
Il se construit bien (pas d'exception) mais le contexte simulé est désormais nul.
Travaillé:
dependencies {
def mockito_version = '2.7.1' // For local unit tests on your development machine
testCompile "org.mockito:mockito-core:$mockito_version" // For instrumentation tests on Android devices and emulators
androidTestCompile "org.mockito:mockito-Android:$mockito_version"
}
Pas besoin de commenter initiMocks
Dans mon cas, je travaillais sur un projet qui n'utilise pas le système de build maven. Voilà donc ce qui a fonctionné pour moi.
Accédé au dépôt maven pour mockito (utilisé v2.26): https://mvnrepository.com/artifact/org.mockito/mockito-core/2.26. . J'ai téléchargé le pot. Sur la même page en bas, j'ai recherché les dépendances. Pour mockito 2.26.0, ces dépendances sont:
Dans Eclipse, j'ai créé une bibliothèque utilisateur contenant les quatre fichiers jar et je l'ai ajoutée à mon projet.
NB: (la création de la bibliothèque est facultative, vous pouvez ajouter les jars directement au chemin de construction de votre projet)
J'espère que cela aide quelqu'un.
N'incluez pas explicitement le mockito, laissez powermock tirer ce dont il a besoin.