我试图测试我的代码,这取决于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 projecthere
我使用了superjugy在第二个链接中提供的解决方案,在gradle构建文件的底部插入了以下内容:

tasks.withType(Test) {
  test {
    // set JVM arguments for the test JVM(s)
    jvmArgs '-XX:-UseSplitVerifier'
  }
}

为了让它在android studio中工作,我必须将vm选项-noverify添加到我的测试构建配置中。
我认为您可以使用包装器来解决这个问题,只要包装器代码从不实例化Tracker类。然而,这可能并不容易(或可能?),请让我知道如果最终走上这条道路并成功!

10-05 18:01