3
我嘗試使用OpenEJB測試基於EJB的存儲庫。每次新單元測試運行時,我都希望我的數據庫處於「初始」狀態。測試結束後,所有更改都應回滾(無論測試是否成功)。如何以簡單的方式完成它?我嘗試使用UserTransaction - 在測試開始時開始並在完成時回滾更改(如下所示)。我不知道爲什麼,但是通過這段代碼,在執行完行換行後,所有DB中的更改(在單元測試期間完成)都會保留。 正如我寫的,我想以最簡單的方式完成它,沒有任何外部數據庫模式等。使用OpenEJB進行EJB存儲庫測試 - 如何回滾更改
在此先感謝您的任何提示!
彼得
public class MyRepositoryTest {
private Context initialContext;
private UserTransaction tx;
private MyRepository repository; //class under the test
@Before
public void setUp() throws Exception {
this.initialContext = OpenEjbContextFactory.getInitialContext();
this.repository = (MyRepository) initialContext.lookup(
"MyRepositoryLocal");
TransactionManager tm = (TransactionManager) initialContext.lookup(
"java:comp/TransactionManager");
tx = new CoreUserTransaction(tm);
tx.begin();
}
@After
public void tearDown() throws Exception {
tx.rollback();
this.initialContext = null;
}
@Test
public void test() throws Exception {
// do some test stuff
}
}
就是這樣!謝謝。 – 2011-04-06 20:41:17