As an Android developer you are already familiar with writing Unit and UI tests. This post is about "How to share the code and resources between your UI and unit tests?". I'd used "Appointments List" as an example scenario for this post. Existing Setup For UI testing, I'd have list of appointments API response in JSON format as "appointments.json" in res directory. The .json file is is converted to AppointmentsListResponse using JsonParser. androidTest/java/com/example/AppointmentScreenTest.java AppointmentsListResponse getFakeAppointmentsResponse() { InputStream in = getInstrumentation ().getContext() .getResources() .openRawResource(com.example.android.internal.test.R.raw.appointments); AppointmentsListResponse fakeResponse = new JsonParser(in).parseTo(AppointmentsListResponse. class ); } androidTest/ java/ com/example/JsonParser.java public class JsonParser String mStringToParse; private static Gson mGso
As an Android Studio user, you should be familiar with the “ surround-with try-catch” functionality. Surround with try-catch When you use Ctrl+Alt+T (Linux) / Cmd+Alt+T (Mac) shortcut, the built-in try-catch generator auto generates a call to the printStackTrace() method of class Exception in the catch block. After this, we manually add some code to log the exception. e.g., Log.e(TAG, “Oops! something gone wrong”, e); As a power user, you may have used some or all of the following built-in Live templates: Live Templates You can save yourself the pain of these 5-keystrokes or repetitive typing or copy pasting the code by becoming a Ninja who uses a custom built-in try-catch template. Steps for customization Step-1 : Go to Android Studio Preferences | Editor | File and Code Templates Step-2: Select Code | Catch Statement Body Step-3: Replace the existing template from: ${EXCEPTION}.printStackTrace(); with: Log.e(getClass().getSimpleName(), "Ex