Тестирование EJB с JUnit

Как мне протестировать EJB 3.1, который получает внедренный экземпляр EntityManager?

Возможный EJB:

@Stateless
@LocalBean
public class CommentService {

    @PersistenceContext
    private EntityManager em;

    public List<Comment> findAll() {
        TypedQuery<Comment> query = em.createNamedQuery(
            Comment.FIND_ALL, Comment.class
        );
        return query.getResultList();
    }

}

Возможный тест:

@Test
public void testFindAll() {
    List<Comment> all = service.findAll();
    Assert.assertEquals(8, all.size());
}

Я только использую GlassFish 3.1 и Eclipse Indigo для разработчиков Java EE. Я уже пробовал такие вещи:

@Before
public void setUp() throws Exception {
    ejbContainer = EJBContainer.createEJBContainer();
    service = (CommentService) ejbContainer.getContext()
        .lookup("java:global/classes/CommentService");
}

Но все, что я получил, было:

javax.ejb.EJBException:
No EJBContainer provider available: no provider names had been found.
39
задан Martijn Pieters 17 November 2017 в 08:50
поделиться