2017-05-10 2 views
0

私はAndroidアプリケーションの静的メソッドの単体テストを書いてみたいです。私はこのMocktioとPowerMockに使用します。 AndroidのフォルダでAndroid.PowerMock。フォルダ "test" - java.lang.NoClassDefFoundError:org/mockito/exceptions/Reporter

"テスト":

でmyproject /アプリ/ SRC /テスト/ javaの/ COM/MyProjectと/アンドロイド/

私は私のユニットテストを持っています

@RunWith(PowerMockRunner.class) 

@PrepareForTest(StringUtil.class) パブリッククラスStringUtilTest {

@Test 
public void isCorrectEmailStub() { 
    mockStatic(StringUtil.class); 
    String INCORRECT_EMAIL_TO_CHECK = "incorrect_email_some.com"; 
    when(StringUtil.isCorrectEmail(INCORRECT_EMAIL_TO_CHECK)).thenReturn(true); 
    assertThat(StringUtil.isCorrectEmail(INCORRECT_EMAIL_TO_CHECK), is(true)); 
} 

}

マイbuild.gradle:

android { 
     defaultConfig { 
      testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
     } 
    } 

dependencies { 
    testCompile 'junit:junit:4.12' 
    testCompile 'org.powermock:powermock-api-mockito:1.6.6' 
    testCompile 'org.powermock:powermock-module-junit4:1.6.6' 
    testCompile "org.mockito:mockito-core:2.7.22" 
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' 
    androidTestCompile "org.mockito:mockito-android:2.7.21" 
} 

プロジェクトが成功を構築します。のみMockitoバージョン< 2.0と

Exception in thread "main" java.lang.NoClassDefFoundError: org/mockito/exceptions/Reporter 
    at sun.reflect.GeneratedSerializationConstructorAccessor5.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at org.objenesis.instantiator.sun.SunReflectionFactoryInstantiator.newInstance(SunReflectionFactoryInstantiator.java:48) 
    at org.powermock.reflect.internal.WhiteboxImpl.newInstance(WhiteboxImpl.java:251) 
    at org.powermock.reflect.Whitebox.newInstance(Whitebox.java:139) 
    at org.powermock.api.extension.reporter.AbstractMockingFrameworkReporterFactory.getInstanceForClassLoader(AbstractMockingFrameworkReporterFactory.java:41) 
    at org.powermock.api.extension.reporter.AbstractMockingFrameworkReporterFactory.create(AbstractMockingFrameworkReporterFactory.java:35) 
    at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.getMockingFrameworkReporter(JUnit4TestSuiteChunkerImpl.java:140) 
    at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:119) 
    at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:53) 
    at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:59) 
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137) 
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117) 
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42) 
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262) 
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 
Caused by: java.lang.ClassNotFoundException: org.mockito.exceptions.Reporter 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java:190) 
    at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass1(DeferSupportingClassLoader.java:77) 
    at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:67) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
+0

https://github.com/powermock/powermock/issues/681 – Jens

答えて

0

仕事:私はテスト「isCorrectEmailStub」を実行しようとする。しかし、私はエラーを取得します。この作品:

testCompile 'org.powermock:powermock-api-mockito:1.6.6' 
testCompile 'org.powermock:powermock-module-junit4:1.6.6' 
testCompile "org.mockito:mockito-core:1.10.19" 
関連する問題