目标:
对名为' 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
答案 0 :(得分:0)
您是否尝试使用特定的测试框架,例如tsqlt / Redgate SQL Test / VS unit tests / DBFit?或者自己实施一些东西?
如果您手动执行此操作,则一个选项是带有参数输入值和预期输出的测试配置表,然后使用表值作为输入动态执行(sp_executesql)过程,然后捕获并比较输出。 / p>