草庐IT

Android 模拟 Dagger2 注入(inject)依赖项以进行 Espresso 测试

我有一个严重依赖注入(inject)(dagger2)的应用程序。我想运行一个espresso测试,而不是让测试在整个应用程序中导航,然后登录到应用程序。我想开始我的teleActivity,并模拟登录管理器。但是在任何@test函数中,我们已经在调用onCreate时命中了空指针。如果我在启动Activity(如下所示)之前覆盖它,则该Activity为空。据我了解,切换下划线依赖项的能力是我们使用Dagger2的一个重要原因,否则它只是一个过度设计的单例。我如何覆盖、模拟或将注入(inject)切换到测试Dagger模块——这样我就可以创建这个简单的espresso测试。请注意,如

android - 如何使用 Android UiAutomation.injectInputEvent 注入(inject)点击事件

我在安装设备管理员的应用程序中自动测试流程。要在大多数设备上激活设备管理员(假设我没有像三星提供的那样让我这样做的企业API),系统会向用户显示一个弹出窗口,然后必须单击“激活”按钮。我正在使用Robotium和AndroidJUnit来驱动我的测试。在正常的测试用例中,人们只能与被测应用程序和进程交互,而不能与出现的任何系统Activity交互。UiAutomation声称允许您通过利用AccessibilityFramework与其他应用程序进行交互,然后允许一个到injectarbitraryinputevents.所以-这是我正在尝试做的事情:publicclassAbcTes

java - 如何使用 Dagger 2 将对象注入(inject)到 Android 优先作业队列中?

我正在尝试使用Dagger2集成Retrofit2和AndroidPriorityJobQueue。很可能我在这里使用了错误的模式(我是Java和Android的新手),但我正在尝试从一个将被序列化然后在执行前反序列化的对象访问Dagger创建的Retrofit实例(Android作业队列序列化持久保存到磁盘的作业)。Retrofit实例由ApplicationDagger组件创建,因为我在其依赖项之一中使用了SharedPreferences。我无法在创建作业时将Retrofit传递给作业,因为Retrofit本身无法序列化。应用程序也无法序列化,因此我无法在作业运行时从作业中引用A

android - 使用 Dagger 2 在库模块中注入(inject)应用程序上下文

我正在构建一个具有某些功能的应用程序:ContentProvider、SyncAdapter、作业服务和相关的持久性逻辑。在这些之上是带有UI的Activity。我试图将所有上述功能放在一个单独的库模块中,因为理论上它们的逻辑是独立的,并且可以被任何应用程序重用。现在是Dagger2。我的库的依赖关系图的第一个节点(主组件)确实需要提供上下文,并且这个上下文必须从应用程序中注入(inject),因为库范围具有与应用程序相同的生命周期。显然,为了自包含,我的库不应该直接使用我的Application类。这些是我想到的可能性:在我的应用程序中构建库的主要组件,并按照建议将其存储在全局静态类

java - 使用 Dagger 进行嵌套/递归注入(inject)

当使用Dagger时,哪些方法将允许在对象上免费/轻松地实例化@Inject字段,这些对象也通过注入(inject)实例化。例如,下面的代码会将Bar类型的对象注入(inject)到给定的Foo对象中。它将以显示的两种方式之一执行此操作。但是,每个Bar对象的Sly字段与该行为不匹配。滚publicclassFoo{@InjectBarbar;publicStringgetValue(){return"Foo'sbarvalue:"+bar.getValue();}}砰publicclassBar{@InjectSlysly;publicStringgetValue(){return"

Android Dagger 2 POJO字段注入(inject)空

今天刚开始使用Dagger2,我对我究竟需要如何设置一切感到困惑。我正在尝试注入(inject)一个POJO,但它始终为空。首先,一些代码:应用程序.javaprivateAppComponentappComponent;@OverridepublicvoidonCreate(){super.onCreate();appComponent=DaggerAppComponent.builder().appModule(newAppModule(this)).build();}publicAppComponentcomponent(){returnappComponent;}AppModu

android - 如何将依赖项注入(inject)嵌套的android fragment ?

对于普通(非嵌套fragment)我使用以下方法1)createdependencies(...)方法来设置fragment的依赖classMyFragmentextendsMyFragment{voiddependencies(Depsdeps);}2)在MyFragment父Activity的onAttachFragment()方法中,我只是为fragment提供依赖项classMyActivity{voidonAttachFragment(Fragmentf){((MyFragment)f).dependencies(deps);}}对于嵌套fragment,不再调用onAtta

android - 在 RoboFragment 中注入(inject) View

我想将xml布局中的一些View注入(inject)RoboFragment,但不幸的是我遇到了Nullpointer异常。由于RoboGuice(除了是一个很棒的DI框架之外)的文档很少,我不知道我是否可以使用@ContentView(R.layout.fragmentlayout)来注释我的RoboFragment。有什么我应该做的吗?我目前做的是:publicclassTestFragmentextendsRoboFragment{@InjectView(R.id.upBtn)privateButtonupBtn;@OverridepublicViewonCreateView(L

android - dagger2 注入(inject)不起作用 - SharedPreferences

我正在尝试使用Dagger2进行依赖注入(inject).它在构建阶段给出错误,并说无法注入(inject)SharedPreference实例。这是我的模块和组件。应用模块@ModulepublicclassApplicationModule{privateApplicationapp;privateStringPREF_NAME="prefs";publicApplicationModule(Applicationapp){this.app=app;}@Singleton@ProvidespublicPicassogetPicasso(){returnnewPicasso.Buil

android - 使用 Butter Knife 库进行 View 注入(inject)

我在做什么::我正在尝试运行butterknifelibrary对于我的简单项目我已经按照文档中的所有步骤进行操作,但我仍然获取日志错误我该如何解决这个问题,我是否遗漏了任何步骤我还在libs文件夹中添加了jarMainActivity.javapackagecom.example.butterknife;importandroid.app.Activity;importandroid.os.Bundle;importandroid.widget.TextView;importbutterknife.ButterKnife;importbutterknife.InjectView;pu