android-测试RecyclerView适配器

android-测试RecyclerView适配器,第1张

概述我有一个基本的RecyclerViewAdapter,我想独立于我的各个子类进行测试.我该如何隔离?我尝试在测试类中创建一个精简的香草Activity,并使用ActivityTestRule来启动它,但是不幸的是,测试框架似乎想要启动实际应用程序中的活动,而不是测试应用程序中的活动.我不想为此使用Robolectric,因

我有一个基本的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适配器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1120962.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存