
Micka
Fortgeschrittenes Mitglied
- 1
Hallo,
ich arbeite zurzeit an einem Projekt was ich leider aus Datenschutzgründen nicht näher beschreiben kann. Für mein Problem spielen die Inhalte aber zum Glück auch keine Rolle. Ich habe derzeit ein Problem mit einem JUnitTest das ganz unabhängig davon ist. Ich habe schon einiges gegoogelt, habe auch hier im Forum nach JUnit gesucht aber nichts passendes gefunden.
Nun zu meinem Problem. Ich habe eine Activity die neben einigen Buttons auch ein EditText beinhaltet. Um meine Activity zu testen nutze ich ein ActivityInstrumentationTestCase2.
Zunächst wollte ich dem EditText einen Text senden und dann prüfen ob der auch wirklich richtig ankommt. Dieser Test schlägt leider sehr oft fehl, aber von ca 10 Versuchen läuft er einmal durch. Nun frage ich mich was ich falsch gemacht habe. Anbei mal mein kompletter Testcode.
Das erneute zuweisen des EditText ist unnütz, bei meiner suche bin ich auf verschiedene wege gestoßen, bei einigen war es so. Ändert aber leider nichts am Testergebnis.
Ich würde mich freuen wenn mir jemand zeigen kann wo das Problem liegt, man lernt ja nie aus und aus Fehlern lernt man am besten.
Gruß
Micka
ich arbeite zurzeit an einem Projekt was ich leider aus Datenschutzgründen nicht näher beschreiben kann. Für mein Problem spielen die Inhalte aber zum Glück auch keine Rolle. Ich habe derzeit ein Problem mit einem JUnitTest das ganz unabhängig davon ist. Ich habe schon einiges gegoogelt, habe auch hier im Forum nach JUnit gesucht aber nichts passendes gefunden.
Nun zu meinem Problem. Ich habe eine Activity die neben einigen Buttons auch ein EditText beinhaltet. Um meine Activity zu testen nutze ich ein ActivityInstrumentationTestCase2.
Zunächst wollte ich dem EditText einen Text senden und dann prüfen ob der auch wirklich richtig ankommt. Dieser Test schlägt leider sehr oft fehl, aber von ca 10 Versuchen läuft er einmal durch. Nun frage ich mich was ich falsch gemacht habe. Anbei mal mein kompletter Testcode.
Code:
package de.fhdo.gerding.ludvikdatabaseapp;
import android.test.ActivityInstrumentationTestCase2;
import android.test.TouchUtils;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ScrollView;
public class MainActivityTests extends ActivityInstrumentationTestCase2<MainActivity>
{
private MainActivity mainActivity;
private EditText tablenameEditText;
private Button btnLocalTable;
private Button btnSyncTables;
private Button btnResetDatabases;
private ScrollView scrollview_tv;
public MainActivityTests()
{
super(MainActivity.class);
}
public void testActivityExists()
{
MainActivity activity = getActivity();
assertNotNull(activity);
}
public void testMainActivity() throws InterruptedException
{
MainActivity activity = getActivity();
tablenameEditText = (EditText) activity.findViewById(R.id.editText_tablename);
getInstrumentation().runOnMainSync(new Runnable() {
@Override
public void run() {
tablenameEditText.requestFocus();
}
});
getInstrumentation().waitForIdleSync();
getInstrumentation().sendStringSync("test");
//assertEquals("test", tablenameEditText.getText().toString());
getInstrumentation().waitForIdleSync();
tablenameEditText = (EditText) activity.findViewById(R.id.editText_tablename);
assertEquals("test", tablenameEditText.getText().toString());
btnLocalTable = (Button) activity.findViewById(R.id.button_lokal_table);
TouchUtils.clickView(this, btnLocalTable);
}
}
Das erneute zuweisen des EditText ist unnütz, bei meiner suche bin ich auf verschiedene wege gestoßen, bei einigen war es so. Ändert aber leider nichts am Testergebnis.
Ich würde mich freuen wenn mir jemand zeigen kann wo das Problem liegt, man lernt ja nie aus und aus Fehlern lernt man am besten.
Gruß
Micka