Come verificare che osservatore della org.jboss.seam.postInitialization funziona correttamente
-
21-09-2019 - |
Domanda
Ho creato che controlla che almeno un utente con diritti di amministratore a livello mondiale esiste e crea uno se no.
@Name("installer")
@Stateless
public class InstallerBean implements Installer, Serializable{
@Observer("org.jboss.seam.postInitialization")
public void install() {
...
}
public boolean isInstalled() {
...
}
}
Ora ho bisogno di testare che installatore funziona correttamente. Ho bisogno di controllare che IsInstalled () restituisce true e verificare che gli utenti e ruoli corrette sono presente nel database. Tuttavia SeamTest.ComponentTest.testComponents () sia in esecuzione prima del mio compleate installazione. Posso vedere nel log che ultimi messaggi dal mio installatore appare al centro della seconda esecuzione di test in modo mio test non riesce in modo casuale.
Sto cercando di testare il mio programma di installazione nel seguente modo:
public class InstallerTests extends SeamTest {
@Test
public void isInstalledTest() {
new ComponentTest() {
@Override
protected void testComponents() {
...
}
}
}
...
}
Come posso fare il mio di partenza di prova dopo la mia installazione compleated?
Sono nuovo a cucitura così forse sto facendo tutto compleately sbagliato. Ti prego, dimmi se c'è un modo migliore.
Soluzione
Forse già risolto voi problema. Come si chiama alcuni metodi in modo asincrono durante l'esecuzione di install()
? Questo potrebbe ritardare in modo casuale completare l'installazione. Una soluzione molto pragmatico ma non il più pulito è quello di utilizzare Thread.sleep(.)
nel vostro banco di prova per attendere il completamento dell'installazione.