Database 带存储程序的TDD
在.Net(c#)中编写代码时,我使用NUnit和Rhino Mock进行测试。没有做太多的数据库编码(存储过程)。我们如何使用数据库编码(存储过程)进行TDD呢?1)有一个框架,允许您获取DB对象并复制它。当您的数据库源代码(包括表定义)存储在文件系统中时,这种方法非常有效Database 带存储程序的TDD,database,stored-procedures,Database,Stored Procedures,在.Net(c#)中编写代码时,我使用NUnit和Rhino Mock进行测试。没有做太多的数据库编码(存储过程)。我们如何使用数据库编码(存储过程)进行TDD呢?1)有一个框架,允许您获取DB对象并复制它。当您的数据库源代码(包括表定义)存储在文件系统中时,这种方法非常有效 临时数据库中的表副本。包括索引等 存储过程或触发器的副本,用临时数据库替换所有DB名称前缀表/其他被称为SP的SP 能够使用从现有表克隆的数据(使用某些筛选器)或存储的准备好的数据集(例如,作为bcp输入文件)预填充表
- 临时数据库中的表副本。包括索引等
- 存储过程或触发器的副本,用临时数据库替换所有DB名称前缀表/其他被称为SP的SP
- 能够使用从现有表克隆的数据(使用某些筛选器)或存储的准备好的数据集(例如,作为bcp输入文件)预填充表
还有一些商业产品可供选择:
此外,还有针对特定DB后端的产品,不确定使用哪一种: 博士后:
补充阅读: MSDN
如果您使用的是SSDT数据库项目,您可以在SSDT单元测试中使用重命名技巧来模拟代码入口点,就像在常规C#中一样。不是真正的国际奥委会的东西,但得到的工作,直到更好的事情来了 我写了一篇关于它的帖子: 您还可以为您的开发使用tSQLt,它本身支持比SSDT更好的DI
谢谢DVK。我们目前正在使用Sybase。我找不到Sybase的任何框架。我们在Sybase上,所以我们推出了自己的:)