Java 使用模拟数据库进行JUnit测试
我正在开发一个测试不同Web服务的应用程序,我希望它尽可能通用。我需要填充数据库来进行JUnit测试,但我不希望提交这些更改。 我知道一些内存中的数据库(如HSQL DB)允许在某种虚拟(或模拟)数据库上进行测试,但不幸的是,我使用oracle,由于数据表结构复杂,现在无法更改它 你建议的最佳实践是什么?Java 使用模拟数据库进行JUnit测试,java,database,web-services,junit,Java,Database,Web Services,Junit,我正在开发一个测试不同Web服务的应用程序,我希望它尽可能通用。我需要填充数据库来进行JUnit测试,但我不希望提交这些更改。 我知道一些内存中的数据库(如HSQL DB)允许在某种虚拟(或模拟)数据库上进行测试,但不幸的是,我使用oracle,由于数据表结构复杂,现在无法更改它 你建议的最佳实践是什么? 谢谢。首先,HSQL和Hibernate没有任何关系。问题是,您是否可以找到一个嵌入式数据库,该数据库支持与生产数据库相同的SQL(或者您的应用程序使用的SQL子集) 这是一个很好的选择,因为
谢谢。首先,HSQL和Hibernate没有任何关系。问题是,您是否可以找到一个嵌入式数据库,该数据库支持与生产数据库相同的SQL(或者您的应用程序使用的SQL子集) 这是一个很好的选择,因为它模拟了许多不同的SQL风格 最重要的是:不要测试数据库。假设您的供应商对数据库进行了彻底的测试,并且数据库正常工作 在我的代码中,我的目标是:
更多详细信息请参见我的博客:但我认为在H2中导入复杂的oracle数据库模式会很困难,难道没有其他替代方案吗?如果你想做这样的事情,无论如何都要付出高昂的代价。要么您需要一种从单元测试创建Oracle实例的方法,要么您需要刷新数据库并加载它(这要容易一点),要么您需要遵循我的方法。