
我有一个基本的RecyclerVIEwAdapter,我想独立于我的各个子类进行测试.我该如何隔离?我尝试在测试类中创建一个精简的香草Activity,并使用ActivityTestRule来启动它,但是不幸的是,测试框架似乎想要启动实际应用程序中的活动,而不是测试应用程序中的活动.我不想为此使用Robolectric,因为我们的团队致力于使用Espresso进行仪器测试.我真正要测试的是适配器中各种notify方法的行为,因为我看到崩溃
android.support.v7.Widget.RecyclerVIEw$Recycler.valIDateVIEwHolderForOffsetposition
解决方法:
我最终通过在deBUG文件夹中添加虚拟活动来解决此问题,然后在测试代码中手动将RecyclerVIEw添加到Activity中,然后在其上设置要隔离测试的适配器.当应用编译时,清单合并将合并位于调试文件夹中的AndroidManifest.xml中声明的所有活动.
这是我的测试设置代码:
@RunWith(AndroIDJUnit4.class)public class MyRecyclerVIEwAdapterTest { private MyRecyclerVIEwAdapter adapter; private RecyclerVIEw recyclerVIEw; @Rule public ActivityTestRule<DummyActivity> activityTestRule = new ActivityTestRule<>(DummyActivity.class, true, false); @Rule public UiThreadTestRule uiThreadTestRule = new UiThreadTestRule(); @Before public voID setup() throws Throwable { final DummyActivity activity = activityTestRule.launchActivity(null); uiThreadTestRule.runOnUiThread(new Runnable() { @OverrIDe public voID run() { adapter = new MyRecyclerVIEwAdapter(activity); recyclerVIEw = new RecyclerVIEw(activity); recyclerVIEw.setID(R.ID.recycler_vIEw); activity.setContentVIEw(recyclerVIEw); recyclerVIEw.setLayoutManager(new linearlayoutmanager(activity)); recyclerVIEw.setAdapter(adapter); } }); }}并在/src/deBUG/AndroIDManifest.xml中声明了虚拟活动:
<activity androID:name="com.example.DummyActivity" />虚拟活动很简单:
// Dummy Activity for testingpublic class DummyActivity extends Activity {} 总结 以上是内存溢出为你收集整理的android-测试RecyclerView适配器全部内容,希望文章能够帮你解决android-测试RecyclerView适配器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)