我有一个我要测试的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) 我正在尝试为一个国家创建一个简单的数据类。
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 方法出现了问题。)这似乎是一个简单的问题,但我不确定如何解决。