Come verificare che osservatore della org.jboss.seam.postInitialization funziona correttamente

StackOverflow https://stackoverflow.com/questions/1762014

Domanda

componente Seam

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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top