为 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