小编gre*_*obo的帖子

如何使用Espresso测试片段

我有一个我要测试的Android片段.我创建了一个测试活动,我添加了这个片段并运行了一些Espresso测试.

但是,Espresso在片段中找不到任何视图.它转储视图层次结构,它全部为空.

我不想使用实际的父活动.我想单独测试这个片段.有没有人这样做过?是否有类似代码的示例?

@RunWith(AndroidJUnit4.class)
class MyFragmentTest {
    @Rule
    public ActivityTestRule activityRule = new ActivityTestRule<>(
    TestActivity.class);

    @Test
    public void testView() {
       MyFragment myFragment = startMyFragment();
       myFragment.onEvent(new MyEvent());
       // MyFragment has a recyclerview. 
       //OnEvent is EventBus callback that in this test contains no data.
       //I want the fragment to display empty list text and hide the recyclerView
       onView(withId(R.id.my_empty_text)).check(matches(isDisplayed()));
       onView(withId(R.id.my_recycler)).check(doesNotExist()));
    }

    private MyFragment startMyFragment() {
         FragmentActivity activity = (FragmentActivity) activityRule.getActivity();
    FragmentTransaction transaction = activity.getSupportFragmentManager().beginTransaction();
    MyFragment myFragment = new MyFragment();
    transaction.add(myFragment, "myfrag");
    transaction.commit();
    return …
Run Code Online (Sandbox Code Playgroud)

android android-espresso

13
推荐指数
4
解决办法
1万
查看次数

如何在 Kotlin 中做到这一点?

我正在尝试为一个国家创建一个简单的数据类。

data class Country(val name: String, val capital: String)
Run Code Online (Sandbox Code Playgroud)

这很好用。现在我想添加邻居。

data class Country(val name: String, val capital: String, val neighbors: List<Country>)
Run Code Online (Sandbox Code Playgroud)

这会导致问题。加拿大和美国是邻居。我怎样才能干净地实例化每个国家对象?我不想让邻居元素可变。是否有可能做到这一点?(我首先尝试创建没有邻居的国家,然后使用复制构造函数创建有邻居的国家。但随后 equals 方法出现了问题。)这似乎是一个简单的问题,但我不确定如何解决。

immutability kotlin

1
推荐指数
1
解决办法
103
查看次数

标签 统计

android ×1

android-espresso ×1

immutability ×1

kotlin ×1