我用Spring + Hibernate + postgres编写了一个API,我有以下问题
1)我正在尝试对我的DAO进行单元测试以进行CRUD操作。什么是最好的方法,对像H2这样的临时数据存储区进行测试是否相同?
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/
希望它有所帮助。