Pregunta

SEAM componente

He creado que comprueba que existe al menos un usuario con derechos de administrador globales y crea uno si no.

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

   public boolean isInstalled() {
      ...
   }
}

Ahora tengo que probar que funciona correctamente instalador. Tengo que comprobar que IsInstalled () devuelve verdadero y comprobar que los usuarios y las funciones son correctas existe en la base de datos. Sin embargo SeamTest.ComponentTest.testComponents () se ejecuta antes de que mi compleate instalación. Puedo ver que en el registro de últimos mensajes de mi instalador aparece en el medio de la segunda ejecución de la prueba por lo que mis pruebas falla aleatoriamente.

Estoy tratando de probar mi instalador de la siguiente manera:

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

    ...
}

¿Cómo puedo hacer que mi partida de prueba después de mi instalación compleated?

Soy nuevo en costura de manera tal que estoy haciendo todo compleately mal. Por favor, dígame si hay una mejor manera.

¿Fue útil?

Solución

Tal vez usted ya resuelto que problema. Cómo se llaman algunos métodos asincrónicamente durante la ejecución de install()? Esto podría retrasar al azar de completar la instalación. Una solución muy pragmática aún no la más limpia es utilizar Thread.sleep(.) en el caso de test que esperar a que se complete la instalación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top