【问题标题】:Is it possible to inject UI-Elements into Testcases? (RoboGuice, Robolectric, Android)是否可以将 UI 元素注入测试用例? (RoboGuice、Robolectric、Android)
【发布时间】:2013-04-18 19:30:17
【问题描述】:

我想出了如何使用 Robolectric 和 RoboGuice 将非 UI 元素 (Android) 注入测试类。不幸的是,我无法弄清楚如何将 Android-UI-Elements 注入测试类。

在目前 RoboGuice 和 Robolectric 的发展状态下,这可能吗?

如果可能的话,有人可以提示我在哪里可以找到教程或提供一些小代码示例吗?如果现在不可能,提示也很好。

谢谢

【问题讨论】:

    标签: android robolectric roboguice


    【解决方案1】:

    不,这是不可能的。 InjectView 代码只接受一个作为源和目标的参数。因此,您不能将活动中的视图引用注入另一个对象。

    您可以查看来源以获取更多信息: https://github.com/roboguice/roboguice/blob/master/roboguice/src/main/java/roboguice/inject/ViewListener.java#L162

    【讨论】:

    • @jtietema ,您的答案是引用 InjectView 代码。但是不使用 InjectView 怎么样?是否可以使用 Provides 方法等?
    • @victorwoo 我不知道。我认为您可以,但您可能必须编写自定义注释。可能会遇到一些范围问题。
    • @jtietema 这个模块实现失败:`public static WebView webView; @Provides WebView provideWebView() { return webView; } ` 一开始就调用了 Provides 方法,WebView 没有机会传入 :(
    • @victorwoo 我认为提供的注释不适合这个。我认为您需要编写一个自定义注释,但我真的不明白为什么您首先想要这个...
    • @jtietema 我有很多对象需要访问单个 WebView 实例。所以我想让 RoboGuice 将 WebView 注入到对象中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多