我正在尝试测试依赖于 Google Analytics SDK v4 的代码.
具体来说,我正在尝试使用 Mockito 模拟 com.google.android.gms.analytics.Tracker
.
Tracker tracker = Mockito.mock(Tracker.class);
产生 this error .
有什么方法可以采取吗?我唯一能想到的就是创建我自己的包装器。
最佳答案
我相信错误截断的代码是 Tracker.class
- 因为这将实例化该类,这又会抛出 VerifyError
。这不是您的代码的问题,而是 Google Play 服务的限制。问题已报告in the Robolectric project和 here .
我使用了 SuperJugy 在第二个链接中提供的解决方案,将以下内容插入到我的 Gradle 构建文件的底部:
tasks.withType(Test) {
test {
// set JVM arguments for the test JVM(s)
jvmArgs '-XX:-UseSplitVerifier'
}
}
为了让它在 Android Studio 中运行,我必须将 VM 选项 -noverify
添加到我的测试构建配置中。
我认为您可以使用包装器解决该问题,只要包装器代码从不实例化 Tracker
类即可。然而,这可能并不容易(或不可能?),如果最终走这条路并成功,请告诉我!
关于android - 模拟 Google Analytics v4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26305214/