Durch das Testen dieser Schaltfläche wird eine Aktivität mit Robolectric gestartet
Hallo ich habe den folgenden code:
@RunWith(Test9Runner.class)
public class MainActivityTest
{
private MainActivity activity;
private Button pressMeButton;
@Before
public void setUp() throws Exception
{
activity = new MainActivity();
activity.onCreate(null);
pressMeButton = (Button) activity.findViewById(R.id.button1);
}
@Test
public void shouldUpdateResultsWhenButtonIsClicked() throws Exception
{
pressMeButton.performClick();
ShadowActivity shadowActivity = shadowOf(activity);
Intent intent = shadowActivity.getResultIntent();
System.out.print(intent.toString());
}
}
Aber ich habe keine Ahnung, wie um zu testen, ob das drücken pressMeButton begann eine neue Tätigkeit. Eigentlich ist es nicht, aber wie schreibt man das richtig Robolectric unit-test für diese Tatsache?
InformationsquelleAutor der Frage user739684 | 2011-05-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Robolectric ist
StartedMatcher
InformationsquelleAutor der Antwort Scott Bale
In Robolectric 2.1.1 Sie können überprüfen, ob
Intent
Beginn der neuenActivity
ausgesandt wurde, in der folgenden Weise.Dies ist ähnlich zu dem, was ich Tue.
Bitte beachten Sie, dass die Erstellung
Activity
durch den Aufrufnew Activity()
machen Robolectric drucken Warnungen über das erstellen von Aktivität falsch, dies wohl besser machen kann...InformationsquelleAutor der Antwort MichK
Aktualisierung dieser für die 3.1.2, wie die Antworten oben funktionierte nicht für mich:-
InformationsquelleAutor der Antwort James Neville
Inspiriert von @MichK Antwort, hier ist ein kompletter test mit der
buildActivity
Verfahren Kette von Robolectric 2.2+:InformationsquelleAutor der Antwort
Dies ist, wie es aussieht für die Robolectric 3
InformationsquelleAutor der Antwort jiahao
InformationsquelleAutor der Antwort Steffy Joseph
Dass nicht von den unit-Tests in android, ich bin mir nicht sicher, ob dies funktionieren wird:
In der Aktivität, die Sie beginnen, könnten Sie eine statische variable namens "Instanz".
In der activity onCreate-legen Sie die Instanz-variable:
Und dann erstellen Sie eine statische Methode, um diese variable.
In Ihrem test können Sie testen Sie dann auf TheActivitysName.getInstance().
Wenn es null ist, dann ist die Aktivität noch nicht gestartet wurde. Wenn es ist Verschieden von null, dann wird die Aktivität erstellt wurde.
Ich bin mir nicht sicher, ob der code zu überprüfen, werden ausgeführt, bevor die activity Zeit hat, um geschaffen worden, obwohl.
InformationsquelleAutor der Antwort Rasmus Øvlesen