SWT SWTBot Test: Dialog soll sich öffnen,wenn button gedrückt

tanzverfuehrung

Bekanntes Mitglied
Ich teste grad meine GUI mit dem SWTBot.

In meiner GUI ist es, das sich ein Dialog ( org.eclipse.jface.dialogs.Dialog.Dialog(Shell parentShell)) öffnet , wenn der Button gedrückt wird. Dies würde ich gern testen..

Jedoch wie kommen ich an genau den Dialog in meinem Test?
So was wie ... bot.dialog() gibt es nicht...

Hat jemand eine Idee?
 
Zuletzt bearbeitet:
Google: "swtbot" bzw. "swtbot dialog"
1) SWTBot
2) SWTBot/FAQ - Eclipsepedia
3) SWTBot/FAQ - Eclipsepedia (Aussage in Kurzform: Native Dialog, wie Datei-, Farb-, Druckerauswahl, MessageBox etc. können nicht mit SWTBot getestet werden, da SWT native Dialoge wohl quasi nicht "erkennt" - was auch immer das heissen mag)
4) wenn du selbsgeschriebene Dialoge testest, geht das z.B. wohl, wie hier beschrieben: gui - Handling SWT Dialog boxes while running tests in headless mode using SWTBOT - Stack Overflow
5) oder hier: Matrex Blog: SWTBot for dialogs
...

happy coding
 
Google: "swtbot" bzw. "swtbot dialog"
1) SWTBot
2) SWTBot/FAQ - Eclipsepedia
3) SWTBot/FAQ - Eclipsepedia (Aussage in Kurzform: Native Dialog, wie Datei-, Farb-, Druckerauswahl, MessageBox etc. können nicht mit SWTBot getestet werden, da SWT native Dialoge wohl quasi nicht "erkennt" - was auch immer das heissen mag)
4) wenn du selbsgeschriebene Dialoge testest, geht das z.B. wohl, wie hier beschrieben: gui - Handling SWT Dialog boxes while running tests in headless mode using SWTBOT - Stack Overflow
5) oder hier: Matrex Blog: SWTBot for dialogs
...

happy coding


ich habe es jetzt anders getestet und zar ob der listViewer sichtbar ist, wenn der Button gedrückt ist.
Und der ListViewer ist auf meinem Dialog.
Jetzt wollte ich in der Liste was auswählen und ENTER drücken.
Jedoch funktioniert das so nicht, weiß eventuell jemand warum?

Ich kann in der Liste nur was auswählen,indem ich doppel klicke oder enter drücke.

Java:
/**
	 * Prüft, ob die Variable dem Textfeld hinzugefügt wird.
	 *
	 * @throws Exception
	 */
	@Test
	public void addVariable() throws Exception {
		textfield.setText("Alarm");
		button.click();
		variableList = bot.listWithId(DIALOG_LIST);
		variableList.select(0);

//		KeyStroke enter = getInstance(SWT.CR, NO_KEY);
//		variableList.pressShortcut(enter);
		variableList.pressShortcut(Keystrokes.CR);
		bot.sleep(2000);

		assertThat(textfield.getText(), is("Alarm ${transponderId}"));
	}
 
Zuletzt bearbeitet:
Im SEtup muss die Zeile
Java:
System.setProperty("org.eclipse.swtbot.keyboard.layout", "EN_US");
eingefügt werden und im Test die Zeile
Java:
KeyboardFactory.getSWTKeyboard().pressShortcut(Keystrokes.CR);

Java:
/**
	 * Prüft, ob die Variable dem Textfeld hinzugefügt wird.
	 *
	 * @throws Exception
	 */
	@Test
	public void addVariable() throws Exception {
		button.click();
		variableList = bot.listWithId(DIALOG_LIST);
		bot.sleep(200);
		variableList.select(0);

		KeyboardFactory.getSWTKeyboard().pressShortcut(Keystrokes.CR);

		assertThat(textfield.getText(), is("${transponderId}"));
	}
:toll:
 

Zurück
Oben