Comment tester cet observateur de org.jboss.seam.postInitialization fonctionne correctement

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

Question

J'ai créé composant Seam qui vérifie qu'au moins un utilisateur avec des droits d'administrateur global existe et crée un si aucune.

@Name("installer")
@Stateless
public class InstallerBean implements Installer, Serializable{
   @Observer("org.jboss.seam.postInitialization")
   public void install() {
      ...
   }

   public boolean isInstalled() {
      ...
   }
}

Maintenant je dois vérifier que l'installateur fonctionne correctement. Je dois vérifier que IsInstalled () retourne vrai et vérifier que les utilisateurs sont corrects et les rôles existe dans la base de données. Cependant SeamTest.ComponentTest.testComponents () est en cours d'exécution avant mon installation compleate. Je peux voir dans le journal derniers messages de mon installateur apparaît au milieu de la deuxième exécution de test pour mes tests échoue au hasard.

Je suis en train de tester mon installateur de la manière suivante:

public class InstallerTests extends SeamTest {
    @Test
    public void isInstalledTest() {
        new ComponentTest() {
            @Override
            protected void testComponents() {
               ...
            }
        }
    }

    ...
}

Comment puis-je faire mon départ de test après mon installation acheva?

Je suis nouveau Seam alors peut-être que je fais tout compleately mal. S'il vous plaît me dire s'il y a une meilleure façon.

Était-ce utile?

La solution

Peut-être que vous avez déjà résolu vous problème. Appelez-vous des méthodes de manière asynchrone pendant l'exécution de install()? Cela pourrait retarder de manière aléatoire terminer l'installation. Une solution très pragmatique mais pas le plus propre est d'utiliser Thread.sleep(.) dans votre cas de test pour attendre l'installation complète.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top