我试图找到一种方法,单元测试我的MySQL相关的代码。我知道我希望如何工作,但无法找到适合我的解决方案。我研究过DBUnit,但看起来(如果我没有弄错),这将需要一个运行的数据库,并且只是帮助单元测试。我想要一些方法来避免在测试时运行mysql数据库。什么工作将会是某种实际将数据存储在内存中的MySQL欺骗驱动程序,而不需要访问真正的持久数据库。数据库单元测试(MySQL的)
在我的代码是硬编码访问MySQL数据库,所以我不能只是注入一些模仿的对象。我想它的工作方式是,当我的代码调用:
DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database, username, password);
它实际上获取可以通过行家或在Maven测试的设置来配置一些其他本地数据库。我研究了基于内存的数据库,如HSQLDB,但无法找到一种方式来欺骗MySQL驱动程序。
有没有提供什么,我期待的任何工具?你有任何测试MySQL相关代码的好方法吗?
http://stackoverflow.com/questions/10692398/how-do-i-make-a-mysql-database-run-completely-in-memory 当单元测试记住首先填充数据库之前启动主程序。 – Tschallacka
我不知道如何在没有运行实际的mysql服务器的情况下使用它。但是这个想法确实让我想到了在单元测试期间运行嵌入式mysql服务器。 – flungo