当我尝试使用Jake Wharton的Android ThreeTen ABP库时,在单元测试中,我遇到一个异常:
org.threeten.bp.zone.ZoneRulesException: No time-zone data files registered
此question解释了init
可能没有被调用,但是如何在单元测试中做到这一点?
答案 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"
请注意,两个版本号不一致。