Попытка вывода на консоль / Logcat во время тестирования инструментов ничего не показывает

В настоящее время я пытаюсь протестировать часть приложения, которая использует контекст приложения для загрузки файла .sqlite. Итак, я создал инструментальный тест, чтобы иметь возможность загрузить указанный файл. Тем не менее, значения загружаются в HashMap, но при попытке сравнить ключи одного HashMap с ожидаемым, кажется, что эти два ключа не видят одно и то же (я говорю с простым

Map.containsKey())

Итак, я пытаюсь вывести значения, которые на самом деле видны, но кажется, что ничего не выводится. Я просто получаю сообщение о прохождении теста, когда пытаюсь установить, пуста карта или нет. Вот мой инструментальный тест для справки

Также:

1) Я вижу, что объект загружается во время выполнения теста (используя отладчик, я оценил выражение в тот момент, когда все значения есть), но он ничего не выводит в мой Logcat или мою консоль. На самом деле, мой logcat даже ничего не печатает. Как будто ничего не происходит. Я смотрел на другие вопросы, но это

2) Если кто-нибудь увидит способ улучшить мой тест, я приветствую критику.

import org.apache.commons.lang3.reflect.FieldUtils;
import org.json.*;
import org.junit.*;

import android.support.test.filters.MediumTest;
import android.support.test.runner.AndroidJUnit4;
import android.util.Log;

import com.personal.obj.misc.ConfigControl;
import com.personal.activities.MyApplication;

import java.util.HashMap;
import java.util.Map;

import static junit.framework.Assert.assertFalse;

@RunWith(AndroidJUnit4.class)
@MediumTest
public class MyTest extends MyApplication
{

    private final Map<String, Map<String,Boolean>> loaded_json = new HashMap<>();

    @Override
    public void onCreate()
    {
        super.onCreate();
    }

    @Before
    public void setUp(){
        String json = null;
        try {
            System.out.println("test output");
            InputStream is = MyApplication.getCustomAppContext().getAssets().open("data.json");
            int size = is.available();
            byte[] buffer = new byte[size];
            is.read(buffer);
            is.close();
            json = new String(buffer, "UTF-8");
            Log.d("JSON OBJECT: ", json);
            loadJsonSwitch(json);
        } catch (IOException ex) {
            ex.printStackTrace();

        }
    }
    @Test
    public void testLoadSwitch()
    {

        ConfigControl instance = ConfigControl.getInstance();
        instance.preLoad();
        Object sqliteObject;
        try
        {
            sqliteObject = FieldUtils.readField(instance, "switchesPerProject", true);
            Map<String, Map<String, Boolean>> sqlite_loaded = (Map<String, Map<String, Boolean>>) sqliteObject;

            for(String key : sqlite_loaded.keySet()){
                Log.e("KEY: ", key);
                System.out.println(key);

            }

            assertFalse(switches.isEmpty());
        }
        catch (Exception e)
        {
            Log.e("EXCEPTION: ", e.toString());
        }
    }
    private void loadJsonSwitch(String text)
    {
        try
        {
            JSONArray json = new JSONArray(text);
            System.out.println(json);
            for (int i = 0; i < json.length(); i++)
            {
                JSONObject aSwitch = json.getJSONObject(i);
                String project = aSwitch.getString("project");
                String switch_name = aSwitch.getString("switch_name");
                int enabled_int = aSwitch.getInt("enabled");
                Boolean enabled;
                if (enabled_int == 1)
                {
                    enabled = true;
                }
                else
                    enabled = false;
                if (switches.containsKey(project))
                {
                    Map<String, Boolean> switch_for_project = switches.get(project);
                    if (!switch_for_project.containsKey(switch_name))
                    {
                        switch_for_project.put(switch_name, enabled);
                    }
                    switches.put(project, switch_for_project);
                }
                else
                {
                    Map<String, Boolean> switch_for_project = new HashMap<>();
                    switch_for_project.put(switch_name, enabled);
                    switches.put(project, switch_for_project);
                }

        }catch(Exception e){
            Log.e("ERROR: ", e.toString());
        }
    }
}

0 ответов

Другие вопросы по тегам