繁体   English   中英

如何使用 Dagger Hilt 运行 android-testify 测试?

[英]How can I run android-testify tests with Dagger Hilt?

我正在尝试集成https://github.com/Shopify/android-testify以向我的应用程序添加屏幕截图测试。 但是,由于我的应用程序当前与 Dagger Hilt 集成,我在运行最简单的测试时遇到了麻烦。

如果我尝试按照 Testify 文档的建议仅添加 ScreenshotRule,则会收到错误消息:

Caused by: java.lang.IllegalStateException: The component was not created. Check that you have added the HiltAndroidRule.

此外,如果我将标准刀柄规则 ( HiltAndroidRule(this) ) 与 ScreenshotRule 一起使用,则测试会立即失败,包括在添加 ScreenshotRule 之前工作的测试。

我对 Hilt 和 Testify 没有任何第一手经验,但我确实有一些将多个测试Rule实例混合在一起的经验。 问题在于每个规则都假设它将成为给定测试类中运行的唯一测试规则。 因此,声明多个Rule实例会使它们相互竞争,并使它们处于立即失败的状态。

为了让规则协同工作,您可能需要使用ruleChain

https://junit.org/junit4/javadoc/4.12/org/junit/rules/RuleChain.html

developer.android.com 上的这篇文章演示了在测试中处理多个TestRule对象的几种技术: https : //developer.android.com/training/dependency-injection/hilt-testing#multiple-testrules

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM