Testes Unitários EJB3

Olá pessoal,

alguém conhece alguma ferramenta para fazer testes unitários com EJB3?
Queria testar meus Beans de Sessão sem precisar subir o JBoss.

Obrigado a todos!

Não sei se o Junit tem suporte a EJB.

Não conheço nenhuma ferramenta de testes no nível de EJB, foi uma boa pergunta.

O JUnit + JMock não resolve seu problema?

Com o DI no EJB3, o acoplamento quase que não existe e não vejo a necessidade de subir o JBoss para fazer teste unitário em um Session Bean. Portanto acredito que o JUnit + JMock (ou EasyMock) pode resolver seu problema

http://docs.jboss.org/ejb3/embedded/embedded.html
http://docs.codehaus.org/display/MAVENUSER/How+to+use+the+JBoss+Embedded+EJB3+Container+for+Unit+testing
http://wiki.jboss.org/wiki/EmbeddedJBoss

Não sei se funciona direto

Estou avaliando todas as sugestões.
Quando chegar a uma solução, dou um feedback à vocês.

Obrigado à todos! :smiley:

Se nada funcionar, usa como último recurso o EJB3Unit, que funciona legal, mas tem o problema de ter que subir um App Server para tal.

Oi, Tecnoage

Seguinte estou fazendo alguns teste com o EJB3Unit, mas estou com um certo problema:

Por exemplo, eu tenho um EAR com dois projetos e cada projeto com o seu SessionBean… quando faço os teste de um sessionbean, blz… ele funciona, mas quando eu faço um injeção de dependencia da interface do session bean que esta no outro projeto não funciona… ele não acha.

Sabe oque pode ser??

Da o seguinte erro:

java.lang.IllegalArgumentException: The Class (teste.ModeloSessionBean) you wold like to bind to JNDI tree can't be found
	at com.bm.jndi.Ejb3UnitJndiBinder.loadClass(Ejb3UnitJndiBinder.java:112)
	at com.bm.jndi.Ejb3UnitJndiBinder.bindSessionBean(Ejb3UnitJndiBinder.java:89)
	at com.bm.jndi.Ejb3UnitJndiBinder.bind(Ejb3UnitJndiBinder.java:65)
	at com.bm.testsuite.BaseFixture.setUp(BaseFixture.java:64)
	at com.bm.testsuite.BaseSessionBeanFixture.setUp(BaseSessionBeanFixture.java:90)
	at junit.framework.TestCase.runBare(TestCase.java:125)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

Usem a seguinte combinação:

Jboss embedded + TestNG + Maven.

Ao menos é a configuração que eu uso, caso vc tb utilize essa combinação, me avisa q eu posto meu pom.xml aqui (esse pom é relativamente difícil de encontrar ne net).

[]'s