为 SQL Server 2008 数据库项目的每个单元测试插入测试数据

Posted

技术标签:

【中文标题】为 SQL Server 2008 数据库项目的每个单元测试插入测试数据【英文标题】:Insert test data for each unit test for SQL Server 2008 Database Project 【发布时间】:2012-09-30 23:51:10 【问题描述】:

我有 Visual Studio Premium,我正在为我的数据库使用它附带的测试项目。我希望能够在为我的 Visual Studio SQL Server 2008 数据库项目中的每个测试运行单元测试之前插入测试数据。我是否在测试本身中正确执行此操作,或者是否有其他方法可以为每个单元测试执行数据生成计划?另外我希望能够在不同的单元测试中重用测试数据。

编辑:更多细节: 我有一个存储过程,它将在一个工作中运行的假股票程序中匹配买家和卖家。我需要测试,因为有太多不同的数据组合可以输入到我不想忘记的 SP 中。 SP 带走了一大堆买家,WHILE 循环通过他们,将他们与卖家一一匹配。希望这能提供足够的细节......

【问题讨论】:

【参考方案1】:

一般来说,我不会将任何需要实际数据库数据的测试称为单元测试。相反,我认为它是一个集成测试。

除了我的吹毛求疵,您可以在 MSTest 中使用属性 [TestInitialize] 和 [TestCleanup] 标记您的设置和拆卸方法。这些将在每次测试之前和之后运行。如果您想为完整的测试运行设置数据,那么您可以使用 [ClassInitialize] 和 [ClassCleanup]。

[TestInitialize]
public void MyTestInitialize()
  // Build needed data for my test
 ...


[TestCleanup]
public void MyTestCleanup()
  // Clean up my test data after my test
  ...

【讨论】:

并不是我真正想要的,但请查看我的编辑以了解原因。

以上是关于为 SQL Server 2008 数据库项目的每个单元测试插入测试数据的主要内容,如果未能解决你的问题,请参考以下文章

无法在 sql server 2008 中为现有项目执行数据库附件

VS2010 数据库项目和 SQL Server 2008R2

在 SQL Server 2008 中计算到期日期

sql server 2008 自动备份(非维护计划)

将数据库项目部署到 SQL Server 2008 Express

SQL Server2008生成数据库字典