[jboss-user] [JBoss Seam] - Re: Uni testing and datasource problem

jagin do-not-reply at jboss.com
Sun Jan 6 14:44:24 EST 2008


The last working example is not very good because for every @Test method we have to createEntityManagerFactory. I don't think it's a good idea.
So i found a better solution:


  | public class MyTest extends SeamTest {
  | 	private EntityManagerFactory emf;
  | 	
  | 	@Override
  | 	@BeforeClass
  | 	public void init() throws Exception {
  | 		super.init();
  | 		emf = Persistence.createEntityManagerFactory("ezapp");
  | 	}
  | 	
  | 	@Override
  | 	@AfterClass
  | 	public void cleanup() throws Exception {
  | 		emf.close();
  | 		super.cleanup();
  | 	}
  | 
  | 	@Test
  | 	public void testFindByUsername() {	
  | 		EntityManager em = emf.createEntityManager();
  | 		em.getTransaction().begin();
  | 		
  | 		em.getTransaction().rollback();
  | 		em.close();
  | 	}
  | }
  | 

First we have to extend SeamTest even if we are not going to use it's functionality in our unit test. But we need to initialize embedded container which is started in SeamTest.init(). So we override this method, call super.init() to initialize container and next we create our EntityManagerFactory. We close EntityManagerFactory in overrided cleanup() method.


Regards

Jarek


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4117392#4117392

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4117392



More information about the jboss-user mailing list