我有一个依赖项的活动:
public class MyActivity extends AppCompatActivity { @Inject Dependency; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { // inject } }public class Dependency { @Inject public Dependency() { //.. } }
由于Dependency具有注入的构造函数,因此Dagger2不需要模块知道如何实例化它,这非常方便.
我的问题是:为了进行测试,我是否必须具有一个提供依赖关系的显式模块,以便能够对其进行模拟并提供模拟的依赖关系版本?还是有没有办法模拟依赖关系?
解决方法:
我找到了一种无需创建显式模块的方法.这是我使用Robolectric和Mockito进行的 *** 作:
@RunWith(RobolectricGradleTestRunner.class)@Config(constants = BuildConfig.class, sdk = 21)public class MyActivityTest { @Mock AppComponent mAppComponent; @Mock private Dependency mDependency; @Before public voID setup() { MockitoAnnotations.initMocks(this); // *** // use the mock AppComponent to perform injections // *** doAnswer(new Answer() { public Object answer(InvocationOnMock invocation) { ((MyActivity) invocation.getArguments()[0]).mDependecy = mDependecy; return null; } }).when(mAppComponent).inject(any(MyActivity.class)); }}
总结 以上是内存溢出为你收集整理的匕首2中的模拟注入构造函数全部内容,希望文章能够帮你解决匕首2中的模拟注入构造函数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)