Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > jUnit-тест для EJB


Автор: YaMolekula 7.1.2014, 18:04
Добрый вечер.
Я новичок как в jUnit, так и в EJB. Я сделал наипростейший EJB-проект с одним бином, с этим проблем не возникло. Но попытки сделать простейший тест для этого единственного бина ни к чему не привели. Я запускаю проект с помощью JBoss AS 7.

Это какой-то ужас.

В чем может быть ошибка?
Что мне нужно сделать чтобы оно заработало?

И есть немного наглая просьба: если у вас есть небольшой рабочий пример по тестированию с помощью встроенного механизма jUnit, с помощью Arquilian, с помощью Mockito - скиньте пожалуйста по всем трём или хотя бы что-то.

В проекте есть бин HelloBean:
Код

package com.pack;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;

/**
 * Session Bean implementation class HelloBean
 */
@Stateless
public class HelloBean implements Hello {

    public String sayHello(String name) {
        return "Hello " + name;
    }

}


Для этого бина есть интерфейс Hello:
Код

package com.pack;

public interface Hello {
    String sayHello(String name);
}


Я написал тест для этого бина:
Код

package com.pack;

import static org.junit.Assert.*;

import java.util.Date;

import javax.ejb.embeddable.EJBContainer;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import org.junit.Test;

public class HelloTest {

    @Test
    public void test() throws NamingException {
         EJBContainer container = EJBContainer.createEJBContainer();

          // Note that global naming isn't working yet.
          InitialContext ctx = new InitialContext();
          Hello bean = (Hello) ctx.lookup("HelloBean/local");

          String now = new Date().toString();
          String actual = bean.sayHello(now);

          assertEquals("Hello " + now, actual);

          container.close();
    }
}


Но этот тест выдает следующую ошибку:
Код

javax.ejb.EJBException: Unable to instantiate container with factories [] at
 javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBCont ainer.java:97) at
 javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBCont ainer.java:75) at
 com.pack.HelloTest.test(HelloTest.java:17) at
 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at
 sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at
 java.lang.reflect.Method.invoke(Unknown Source) at
 org.junit.runners.model.FrameworkMethod$1.runReflectiveCall( FrameworkMethod.java:47) at
 org.junit.internal.runners.model.ReflectiveCallable.run(Refl ectiveCallable.java:12) at
 org.junit.runners.model.FrameworkMethod.invokeExplosively(Fr ameworkMethod.java:44) at
 org.junit.internal.runners.statements.InvokeMethod.evaluate( InvokeMethod.java:17) at
 org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271 ) at
 org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit 4ClassRunner.java:70) at
 org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit 4ClassRunner.java:50) at
 org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at
 org.junit.runners.ParentRunner$1.schedule(ParentRunner.java: 63) at
 org.junit.runners.ParentRunner.runChildren(ParentRunner.java :236) at
 org.junit.runners.ParentRunner.access$000(ParentRunner.java: 53) at
 org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java: 229) at
 org.junit.runners.ParentRunner.run(ParentRunner.java:309) at
 org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at
 org.eclipse.jdt.internal.junit.runner.TestExecution.run(Test Execution.java:38) at
 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe sts(RemoteTestRunner.java:467) at
 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe sts(RemoteTestRunner.java:683) at
 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(R emoteTestRunner.java:390) at
 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main( RemoteTestRunner.java:197)



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)