ASでインストルメンテーションテストを実行しようとしています。
このエラーで立ち往生:
Java.lang.IllegalStateException:プラグインを初期化できませんでした:org.mockito.internal.configuration.plugins.PluginLoader $ 1.invoke(PluginLoader.Java:66)のインターフェースorg.mockito.plugins.MockMakerは、Java.lang.reflect.Proxy。 $ Proxy4.isTypeMockable(Unknown Source)のinvoke(Proxy.Java:393)
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')
}
更新:コメント行の後-
MockitoAnnotations.initMocks(this);
正常に構築されていますが(例外なし)、モックされたコンテキストはnullになりました。
働いた:
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"
}
InitiMocksにコメントする必要はありません
私の場合、私はmavenビルドシステムを使用しないプロジェクトに取り組んでいました。だから、これは私のために働いたものです。
Mockitoのmavenリポジトリ(v2.26を使用)に移動: https://mvnrepository.com/artifact/org.mockito/mockito-core/2.26. 。 jarをダウンロードしました。下の同じページで、依存関係を調べました。 mockito 2.26.0の場合、これらの依存関係は次のとおりです。
Eclipseで、4つのjarファイルを含むユーザーライブラリを作成し、それをプロジェクトに追加しました。
NB:(ライブラリの作成はオプションです。jarをプロジェクトのビルドパスに直接追加できます)
これが誰かを助けることを願っています。
Mockitoを明示的に含めないでください。powermockに必要なものを取り込んでください。