Как проверить правильность работы обозревателя org.jboss.seam.postInitialization

Я создал компонент SEAM, который проверяет наличие хотя бы одного пользователя с правами глобального администратора и создает его, если нет.

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

   public boolean isInstalled() {
      ...
   }
}

Теперь мне нужно проверить правильность работы установщика. Мне нужно проверить, что isInstalled() возвращает true, и убедиться, что в базе данных существуют правильные пользователи и роли. Однако SeamTest.ComponentTest.testComponents() запускается до завершения моей установки. Я вижу в журнале, что последние сообщения от моего установщика появляются в середине выполнения второго теста, поэтому мои тесты случайным образом терпят неудачу.

Я пытаюсь проверить свой установщик следующим образом:

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

    ...
}

Как запустить тест после завершения установки?

Я новичок в SEAM, поэтому, возможно, я все делаю неправильно. Пожалуйста, скажите мне, есть ли лучший способ.


person VestniK    schedule 19.11.2009    source источник


Ответы (1)


Возможно, вы уже решили свою проблему. Вызываете ли вы некоторые методы асинхронно во время выполнения install()? Это может случайно задержать завершение установки. Очень прагматичное, но не самое чистое решение — использовать Thread.sleep(.) в тестовом примере, чтобы дождаться завершения установки.

person kraftan    schedule 08.10.2010
comment
эта проблема не была решена в основном из-за того, что мы решили удалить компонент установщика из проекта и использовать файл import.sql для инициализации базы данных. Решение с Tread.sleep() должно работать, но сейчас я не могу его попробовать. - person VestniK; 21.10.2010