如何在SQL Server中创建推荐的测试计划

时间:2015-06-19 17:06:43

标签: sql-server tsql stored-procedures tdd

目标:
对名为' sp_test'的特定存储过程进行大量不同的测试。以便检查您是否根据数据输入检索相同的数据。

目的:
如果您对存储的存储' sp_test'进行了大量更改。如果此SP在生产阶段使用之前完全正常工作,则需要进行验证。我需要做很多测试。至少有20种不同的测试。以下代码是简化版。

问题:
您是否有推荐的解决方案或方法来创建它? 我的请求是检索一个显示列testnumber,Parameter和Result的表。 (结果列显示“通过'或失败”

下面的测试表。

我认为这种方法与TDD相同。

谢谢!

测试清单

  

测试编号1:
  参数'科学'
  命中:5行
  命中是SP的正确答案

     

测试编号2:
  参数'编程'
  命中:1排
  命中是SP的正确答案

     

测试编号3:
  参数'计算机'
  命中:2排
  命中是SP的正确答案

     

测试编号4:
  参数'商业'
  点击:1行,BookID = 6   命中1是正确的,然后检查BookID是否为6是SP的正确答案

CREATE TABLE [dbo].[Books](
    [BookID] [int] IDENTITY(1,1) NOT NULL,
    [BookName] [varchar](50) NULL,
    [Category] [varchar](50) NULL,
    [Price] [numeric](18, 2) NULL,
    [Price_Range] [varchar](20) NULL,
    PRIMARY KEY CLUSTERED ( [BookID] ASC )
) ON [PRIMARY]


INSERT INTO dbo.Books 
    (BookName, Category, Price, Price_Range)
VALUES  
    ('Computer Architecture', 'Computers', 125.6, '100-150'),
    ('Advanced Composite Materials', 'Science', 172.56, '150-200'),
    ('Asp.Net 4 Blue Book', 'Programming', 56.00, '50-100'),
    ('Strategies Unplugged', 'Science', 99.99, '50-100'),
    ('Teaching Science', 'Science', 164.10, '150-200'),
    ('Challenging Times', 'Business', 150.70, '150-200'),
    ('Circuit Bending', 'Science', 112.00, '100-150'),
    ('Popular Science', 'Science', 210.40, '200-250'),
    ('ADOBE Premiere', 'Computers', 62.20, '50-100')

--------------

CREATE PROCEDURE sp_test 
    @test nvarchar(50)

AS 
    SET NOCOUNT ON;

    SELECT
        [BookID],
        [BookName],
        [Category],
        [Price],
        [Price_Range]
    FROM [dbo].[Books]
    WHERE [Category] = @test

GO

1 个答案:

答案 0 :(得分:0)

您是否尝试使用特定的测试框架,例如tsqlt / Redgate SQL Test / VS unit tests / DBFit?或者自己实施一些东西?

如果您手动执行此操作,则一个选项是带有参数输入值和预期输出的测试配置表,然后使用表值作为输入动态执行(sp_executesql)过程,然后捕获并比较输出。 / p>