Android ThreeTen ABP库在单元测试中不起作用(ZoneRulesException)

时间:2019-07-31 23:26:13

标签: android unit-testing android-studio threetenbp

当我尝试使用Jake Wharton的Android ThreeTen ABP库时,在单元测试中,我遇到一个异常:

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

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

1 个答案:

答案 0 :(得分:1)

由于未使用上下文调用AndroidThreeTen.init而导致此异常。 Local unit tests没有Android Threeten ABP加载时区信息所需的应用程序或上下文。

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

使用testImplementation命令将额外的threeten库添加到gradle文件中。

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

请注意,两个版本号不一致。