Попытка вывода на консоль / 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());
}
}
}