2011-01-27 3 views
4

Я уже поступил в Google, но, похоже, трудно найти темы о насмешливых инжекционных объектах зависимостей (EJB 3.0).Как насмехаться с аннотированными EJB?

public class MyTestBean 
    { 
    @EJB 
    ILoginService mLoginService; 
    public void doLogin() { 
     if (!mLoginService.login(name, pass)) { 
     // fehler 
    } 
    } 

При выполнении тестов с OpenEJB я хочу иметь LoginService.login (имя, передать) возвращает истину. Есть ли способ издеваться над компонентом LoginService?

(В настоящее время Логин-Methode использует некоторые JAAS-вещи, которые я не могу подражать во время испытаний.)

ответ

3

Может быть посмотреть на Mockito. Вы можете применить аннотацию @EJB к настройщику и ввести в свои тесты пробную версию LoginService.

1

Другой вариант - просто обеспечить вторую реализацию вашего интерфейса ILoginService. Эта вторая реализация - макет, но для этого не требуется специальная библиотека Mock или поддержка.

Вы помещаете эту реализацию в специальную папку источника, обычно называемую тестом. Затем вы создаете свои сценарии развертывания, чтобы при нормальной сборке эта тестовая папка игнорировалась. Когда вы выполняете свои модульные тесты и создаете архив для тестирования, вы явно включаете реализацию Mock из тестовой исходной папки.

+0

мой вопрос был неправильным .. поэтому для того, что я искал, ваш ответ кажется вполне подходящим. Я хотел запустить тесты на MyTestBean. MyTestBean я могу сделать только IMyTestBean mContext.lookup («MytestBeanLocal»); - Теперь я вижу, как далеко я буду настраивать свои конфигурации. Сервисные бобы все аннотированы, поэтому, возможно, используйте те же аннотации для макета и реальной реализации и исключайте их в соответствии с тестовой средой или производственной средой. – justastefan

Смежные вопросы