Unit testing 在PHPUnit测试中使用内存数据库中的PDO Sqlite

Unit testing 在PHPUnit测试中使用内存数据库中的PDO Sqlite,unit-testing,zend-framework,sqlite,phpunit,in-memory-database,Unit Testing,Zend Framework,Sqlite,Phpunit,In Memory Database,我最近让PHPUnit与xDebug一起测试我的Zend框架应用程序。事实上,我使用ZF不应该对这个问题产生任何影响-只是为了完整性而提到它 无论如何,这一切都很好,但现在我想使用PDO SQLite建立一个内存中的数据库。我已经成功地完成了这项工作,并创建了表和插入了数据。然而,这项任务似乎需要很长时间,我导出的语法与SQLite的需要不匹配,所以我不得不玩一会儿 此外,SQLite不支持我的应用程序使用的约束(对吗?),因此如果我不能测试约束,整个过程似乎是在浪费时间 使用SQLite是解决

我最近让PHPUnit与xDebug一起测试我的Zend框架应用程序。事实上,我使用ZF不应该对这个问题产生任何影响-只是为了完整性而提到它

无论如何,这一切都很好,但现在我想使用PDO SQLite建立一个内存中的数据库。我已经成功地完成了这项工作,并创建了表和插入了数据。然而,这项任务似乎需要很长时间,我导出的语法与SQLite的需要不匹配,所以我不得不玩一会儿

此外,SQLite不支持我的应用程序使用的约束(对吗?),因此如果我不能测试约束,整个过程似乎是在浪费时间


使用SQLite是解决我的问题的正确方法吗?是否有人有更好的方法使用它或任何其他DB解决方案进行单元测试?

单元测试的思想是测试较小的部分,因此一种方法可以是使用少量(静态)样本数据,例如中所述


如果您真的需要测试一个具有所有约束条件的完整数据库,我认为仅仅使用应用程序的特定数据库(例如MySQL)是没有办法的。

您的问题有点误导。听起来好像你面临着如何为数据库相关应用程序进行单元测试的问题?好问题,非常好的问题:-)好的观点。我想我需要用不同的方式来思考这个问题。停止尝试测试我的“应用程序”,开始尝试测试部分应用程序。老实说,使用Zend实际上已经导致了这一点,因为您可以使用PHPUnit测试它的MVC设置。