1

当我尝试使用 Jake Wharton 的Android ThreeTen ABP库时,在单元测试中出现异常:

org.threeten.bp.zone.ZoneRulesException: No time-zone data files registered

这个问题解释了init可能没有被调用,但是我如何在单元测试中做到这一点?

4

1 回答 1

2

导致此异常的原因是AndroidThreeTen.init尚未使用上下文调用。 本地单元测试没有 Android Threeten ABP 加载时区信息所需的应用程序或上下文。

对于单元测试,您可以使用不是为 Android 设计的常规ThreeTen BP 。它可以在没有 Android 上下文的情况下加载时区信息。您的任何导入都不需要更改。

使用命令将附加的threeten 库添加到您的gradle 文件中testImplementation

implementation "com.jakewharton.threetenabp:threetenabp:1.2.1"
testImplementation "org.threeten:threetenbp:1.4.0"

请注意,这两个版本号并不重合。

于 2019-07-31T23:26:13.260 回答