我如何 运行 android-testify 使用 Dagger Hilt 进行测试?
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
实例混合在一起的经验。问题是每条规则都假定它是给定测试 class 中唯一的测试规则 运行。因此,声明多个 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
我正在尝试集成 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
实例混合在一起的经验。问题是每条规则都假定它是给定测试 class 中唯一的测试规则 运行。因此,声明多个 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