单元测试Spring DAO

时间:2013-01-08 23:44:21

标签: java spring hibernate testing

我用Spring + Hibernate + postgres编写了一个API,我有以下问题

1)我正在尝试对我的DAO进行单元测试以进行CRUD操作。什么是最好的方法,对像H2这样的临时数据存储区进行测试是否相同?

2)是否有任何建议的教程可以做到这一点?

请帮忙

2 个答案:

答案 0 :(得分:3)

您可能希望使用Spring profile进行测试,只需将您的DataSource与仅在测试中运行的嵌入式H2数据库交换。 Spring reference解释得非常好。它很简单:

<jdbc:embedded-database id="dataSource">
    <jdbc:script location="classpath:schema.sql"/>
    <jdbc:script location="classpath:test-data.sql"/>
</jdbc:embedded-database>

id属性将是DataSource类型的bean的id。

您可能希望使用脚本来设置测试记录,如示例所示。

答案 1 :(得分:0)

测试DAO的最佳方法是使用test-applicationContext来使用内存中的H2数据库,您也可以使用mockito框架。

Hibernate temporary datastore http://iamjosh.wordpress.com/2007/12/11/unit-testing-dao-classes-with-junit-spring/

希望它有所帮助。