java - How can I test an abstract class using Espresso? -


suppose make abstract baseactivity toolbar, this:

/**  * base activity handles common functionality in app.   * includes 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);             }         }     } } 

and mainactivity extends baseactivity, this:

public class mainactivity extends baseactivity {     @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);     } } 

the layouts are:

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> 

my question is: how can test baseactivity using espresso? to, example, check if toolbar exists?

you should create testactivity testing abstract baseactivity class. remember, class should override necessary method , code avoid effect baseactivity class.

public class testactivity extends baseactivity {     @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);     } } 

and can use espresso

@runwith(androidjunit4.class) @smalltest public class baseactivitytest {     @rule     public activitytestrule<testactivity> mtestactivityactivitytestrule = new activitytestrule<testactivity>(testactivity.class, true, false);     @before     public void set() {         //setup things     }     @test     public void testrequest1() {         mtestactivityactivitytestrule.launchactivity(new intent());     } } 

Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -