關於部落格
換個方向思考反而能更真切的看出事物的真實與本質
  • 65509

    累積人氣

  • 2

    今日人氣

    0

    訂閱人氣

[Spring][Hibernate][JUnit] 關於Spring Dao的Test Case

 
1.設定 applicationContext.xml 主要是交易的部分(後面的測試會用到),如果本來就有的話,這裡就不用再做設定。

    <tx:annotation-driven transaction-manager="transactionManager"/>
 
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>


2.建立Test Case ,簡單的例子如下:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/applicationContext.xml"})
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
@Transactional
public class UserDaoTest {
 
    @Autowired
    private UserDao dao;
 
    public UserDaoTest() {
    }
 
    @BeforeClass
    public static void setUpClass() throws Exception {
    }
 
    @AfterClass
    public static void tearDownClass() throws Exception {
    }
 
    @Before
    public void setUp() {
    }
 
    @After
    public void tearDown() {
    }
 
    @Test
    public void testCreate() {
        User o = new User();
        o.setUserid("abc");
        o.setPassword("abc");
        dao.saveOrUpdate(o);
        User user = dao.findById("abc");
        assertNotNull(user);
        assertEquals(user.getUserid(), "abc");
        assertEquals(user.getPassword(), "abc");
    }
}

主要要注意的就是,最上面的 Annotation:
ContextConfiguration 要指定好你的 applicationContext.xml 的位置 (注1)
TransactionConfiguration 有設說要 Rollback ,這樣執行完測試就會自己 Rollback 了。
再來是看 Autowired 的部分,自動注入的話記得要有相對應的設定,詳細設定這裡就不討論了。

注1:使用 Netbeans 但 applicationContext.xml 放在 WEB-INF 下的話就在 Project Properties -> Libraries -> Run Tests -> Add Jar/Folder 增加 web/WEB-INF 資料夾就可以順利的抓到相關設定。
相簿設定
標籤設定
相簿狀態