我正在尝试集成https://github.com/Shopify/android-testify来将屏幕截图测试添加到我的应用程序中。然而,由于我的应用程序目前与Dagger Hilt集成,我在运行最简单的测试时遇到了麻烦。
如果我尝试按照证言文档中的建议仅添加ScreenshotRule,则会得到错误:
Caused by: java.lang.IllegalStateException: The component was not created. Check that you have added the HiltAndroidRule.此外,如果我在使用ScreenshotRule的同时使用标准的句柄规则(HiltAndroidRule(this)),测试就会立即失败,包括在添加ScreenshotRule之前有效的测试。
发布于 2021-11-15 18:03:09
我没有任何使用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
https://stackoverflow.com/questions/69802966
复制相似问题