为测试和可读性声明 Fragment 依赖项的最佳方法?

Best way to declare Fragment dependencies for test- and readability?

基本上我知道的有两种方式:

这两种方法似乎都能完成工作。

然而,第一种方法非常类似于通过构造函数声明依赖项的常用方法,但它需要传递的依赖项来实现 Parcelable 接口,这并不总是可行或不需要的。 (例如数据库 DAO 和存储库)

第二种方法在附加到上下文时检索依赖项。这样就可以询问上下文是否有片段运行所需的某些依赖项。这似乎是一种非常干净和高效的方法,但问题是它隐藏了依赖关系,并使其更难测试。

所以我的问题是:还有第三种方法吗?还是有什么方法可以让这两种方法都达到最佳效果?

您可以使用 Dagger 2 将依赖项注入片段。设置完成后,您只需使用 @Inject 注释对片段的成员进行注释,Dagger 2 将提供所需 class 的实例。并且可以在测试中替换您的依赖项。