我正在尝试将Mockito Android与AndroidJunitrunner使用并遇到错误。我尝试了许多其他Gradle依赖的组合,但没有运气。我在哪里错了?
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
这是Gradle Test Compile Block
testCompile 'junit:junit:4.12'
androidTestCompile 'org.mockito:mockito-android:2.12.0'
androidTestCompile('com.android.support.test:runner:+', {
exclude group: 'com.android.support', module: 'support-annotations'
exclude group: 'com.google.code.findbugs'
})
我有错误
org.mockito.exceptions.base.MockitoException:Mockito无法模拟 此类:接口 *.coursewebservice。
Mockito只能模拟非私人&非决赛类。如果不是 当然,为什么要遇到此错误,请报告到邮件列表中。
适用于Android用户的重要信息:
常规字节伙伴模拟制造商无法在Android上生成代码 VM!要解决此问题,请使用" Mockito-Android"依赖性 你的申请: http://search.maven.org/#search|ga|1|a:"mockito-android" G G:"22org.mockito"
Java:0.9 JVM供应商名称:Android Project JVM 供应商版本:2.1.0 JVM名称:Dalvik JVM版本
:0.9 JVM信息:null OS名称:Linux OS版本 :3.18.31-perf-gcd8e090基础例外:
com.android.dex.util.ExceptionWithContext: com.android.dx.cf.attrib.RawAttribute cannot be cast to com.android.dx.cf.attrib.AttSignature
这是测试类:
@RunWith(AndroidJUnit4.class)
public class CourseTest {
@Mock
CourseWebService courseWebService;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
gson = new NetworkingConfigurationModule().provideGson();
assertNotNull(gson);
}
}
您应该用@RunWith(MockitoJUnitRunner.class
更改@RunWith(AndroidJUnit4.class)
。另外,在您的setup()
方法中,您可以添加此行:courseWebService = mock(CourseWebService.class)
。