android - 模拟 Google Analytics v4

标签 android unit-testing google-analytics

我正在尝试测试依赖于 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 类即可。然而,这可能并不容易(或不可能?),如果最终走这条路并成功,请告诉我!

关于android - 模拟 Google Analytics v4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26305214/

相关文章:

javascript - Firefox 在跟踪出站链接时不会触发 Google Analytics 中的 hitCallback

Android.Gms.Analytics.HitBuilders.AppViewBuilder 已过时

android - 谷歌分析 : Time on "Screen" for fragment

c# - 测试项目在它正在测试的项目中找不到对象

java - 如何使用 firebase 实时数据库在回收站 View 上使用拖放

java - JUnit Suite 内的日志信息

c++ - 使用 C++ Builder 可以替代 DUnit 吗?

javascript - Google Analytics 不会使用 ui 路由器跟踪每个页面

由于 Jetpack Compose 的 Accompanist Horizo​​ntalPager 中的 NullPointerException,Android 应用程序崩溃

android - <activity-alias> 打破了 singleTop 模式的契约