単体テストでentityManagerFactoryは動かないよ?

単体テストではentityManagerFactoryは動かないもんだとばかり思っていたら、
サンプルに思いっきり書いてたよ・・・。

んーでもDB接続すると単体テストではなくなってしまうから、
やっぱりやめたほうがいいような・・・。
やったほうがいいような・・・。
(´ε`;)ウーン…

第26章 Seamアプリケーションのテスト - seam1.2.1GA

public class RegisterActionTest
{

    @Test
    public testRegisterAction()
    {
        EntityManager em = getEntityManagerFactory().createEntityManager();
        em.getTransaction().begin();
        
        User gavin = new User();
        gavin.setName("Gavin King");
        gavin.setUserName("1ovthafew");
        gavin.setPassword("secret");
        
        RegisterAction action = new RegisterAction();
        action.setUser(gavin);
        action.setBookingDatabase(em);
        
        assert "success".equals( action.register() );
        
        em.getTransaction().commit();
        em.close();
    }
    
    
    private EntityManagerFactory emf;
    
    public EntityManagerFactory getEntityManagerFactory()
    {
        return emf;
    }
    
    @Configuration(beforeTestClass=true)
    public void init() 
    {
        emf = Persistence.createEntityManagerFactory("myResourceLocalEntityManager");
    }
    
    @Configuration(afterTestClass=true)
    public void destroy()
    {
        emf.close();
    }
    
}

seam2.0.1GAはビジネスロジックだけ書くよう推奨しているよ。
33.1. Seamコンポーネントユニットテスト

public class StatementOfAccountTest {
    
    @Test
    public testCalculateTotal {
       List invoices = generateTestInvoices(); // A test data generator
       double statementTotal = new StatementOfAccount().calculateTotal(invoices);
       assert statementTotal = 123.45;
    }   
}