2
假設我讓一個抽象BaseActivity
與Toolbar
,像這樣:如何使用Espresso測試抽象類?
/**
* A base activity that handles common functionality in the app.
* This includes the Toolbar
*/
public abstract class BaseActivity extends AppCompatActivity {
// Primary toolbar
private Toolbar mToolbar;
@Override
public void setContentView(int layoutResId) {
super.setContentView(layoutResId);
setToolbar();
}
private void setToolbar() {
if (mToolbar == null) {
mToolbar = (Toolbar) findViewById(R.id.toolbar);
if (mToolbar != null) {
mToolbar.setNavigationContentDescription(getResources().getString(
R.string.navigation_drawer_description_ally));
setSupportActionBar(mToolbar);
}
}
}
}
和延伸這個BaseActivity
一個MainActivity
,像這樣:
public class MainActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
的佈局是:
toolbar.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:elevation="@dimen/spacing_tiny"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:popupTheme="@style/ThemeOverlay.AppCompat.Light"
android:fitsSystemWindows="true"
android:minHeight="?attr/actionBarSize"
>
</android.support.v7.widget.Toolbar>
activity_main.xml
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"
>
<include
layout="@layout/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
我的問題是:如何測試BaseActivity
使用espresso?例如,要檢查Toolbar
是否存在?