макетирование и интеграционное тестирование для управляемых и сессионных компонентов - PullRequest
3 голосов
/ 16 декабря 2011

Я не знаю, что я делаю не так, но я действительно расстроен и в гонке со временем.У меня есть сущности EJB, которые получены из базы данных, локальных сессионных компонентов без сохранения состояния (большинство из них - фасады), которые сохраняют эти объекты в БД и управляемые компоненты, которые используют сессионные компоненты.

Так что мои управляемые компоненты выглядят так:

@ManagedBean
public class SomeBean {

   //attributes

    @EJB
    private SomeSessionBean sb;

    // getters and setters and other methods

    public void createObject(){
       // some logic
          sh.method(arguments);
    }
}

Мне нужно провести некоторое тестирование JUnit (желательно с использованием Mockito) в моих управляемых bean-компонентах.Мне также нужно выполнять макетирование и интеграцию с db-тестированием в моих сессионных компонентах. Также несколько тестов с использованием Arquillian (из того, что я понял, Arquillian интегрирует тесты с сервером Jboss)

Может кто-нибудь объяснить или написать пример кода, илиуказать на некоторые сайты, но, пожалуйста, позвольте им относиться к моему делу?

Я работаю в веб-приложении в NetBeans.

1 Ответ

1 голос
/ 14 января 2012

Тестирование управляемых bean-компонентов с использованием JUnit и Mockito легко, если вы используете сеттеры для своих зависимостей. Ваш пример может выглядеть так:

@ManagedBean
public class SomeBean {

    private SomeSessionBean sb;

    @EJB 
    public void setSomeSessionBean(SomeSessionBean sb) {
        this.sb = sb;
    }

    public void createObject(Object obj) {
        sb.createObject(obj);
    }
}

Тест будет выглядеть так:

@RunWith(MockitoJUnitRunner.class)
public class SomeBeanTest {

    private SomeBean bean;

    @Mock
    private SomeSessionBean sb;

    @Before
    public void setUp() throws Exception {
        bean = new SomeBean();
        bean.setSomeSessionBean(sb);
    }

    @Test
    public void testCreateObject() throws Exception {
        Object obj = new Object();

        bean.createObject(obj);

        Mockito.verify(sb).createObject(obj);
    }
}

Как видите, я запускаю управляемый бин в методе @Before JUnit, который устанавливает макеты для всех зависимостей. В настоящем тесте я использую Mockito.verify , чтобы убедиться, что createObject вызывается для сессионного компонента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...