### Question:
JsonUtil { @NonNull public static List<String> getStringList( @NonNull JSONObject json, @NonNull String field) throws JSONException { checkNotNull(json, "json must not be null"); checkNotNull(field, "field must not be null"); if (!json.has(field)) { throw new JSONException("field \"" + field + "\" not found in json object"); } JSONArray array = json.getJSONArray(field); return toStringList(array); } private  JsonUtil(); static void put(
            @NonNull JSONObject json,
            @NonNull String field,
            @NonNull int value); static void put(
            @NonNull JSONObject json,
            @NonNull String field,
            @NonNull String value); static void put(
            @NonNull JSONObject json,
            @NonNull String field,
            @NonNull JSONArray value); static void put(
            @NonNull JSONObject json,
            @NonNull String field,
            @NonNull JSONObject value); static void putIfNotNull(
            @NonNull JSONObject json,
            @NonNull String field,
            @Nullable String value); static void putIfNotNull(
            @NonNull JSONObject json,
            @NonNull String field,
            @Nullable Uri value); static void putIfNotNull(
            @NonNull JSONObject json,
            @NonNull String field,
            @Nullable Long value); static void putIfNotNull(
            @NonNull JSONObject json,
            @NonNull String field,
            @Nullable JSONObject value); @NonNull static String getString(
            @NonNull JSONObject json,
            @NonNull String field); static String getStringIfDefined(
            @NonNull JSONObject json,
            @NonNull String field); static List<String> getStringListIfDefined(@NonNull JSONObject json,
                                                      @NonNull String field); static Uri getUri(
            @NonNull JSONObject json,
            @NonNull String field); @Nullable static Uri getUriIfDefined(
            @NonNull JSONObject json,
            @NonNull String field); @Nullable static Long getLongIfDefined(
            @NonNull JSONObject json,
            @NonNull String field); @NonNull static List<String> getStringList(
            @NonNull JSONObject json,
            @NonNull String field); @NonNull static List<Uri> getUriList(
            @NonNull JSONObject json,
            @NonNull String field); @NonNull static Map<String, String> getStringMap(JSONObject json, String field); @NonNull static List<String> toStringList(@Nullable JSONArray jsonArray); @NonNull static List<Uri> toUriList(@Nullable JSONArray jsonArray); @NonNull static JSONArray toJsonArray(@NonNull Iterable<?> objects); @NonNull static JSONObject mapToJsonObject(@NonNull Map<String, String> map); static T get(JSONObject json, Field<T> field); static List<T> get(JSONObject json, ListField<T> field);  }### Answer:
@Test(expected = JSONException.class) public void testGetStringList_missing() throws Exception { when(mJson.has(TEST_KEY)).thenReturn(false); JsonUtil.getStringList(mJson, TEST_KEY); }