我是 sql 单元测试的新手,但我已经编写了我的第一个测试并试图确保这是一个合理的测试。所以我有一个存储过程,它执行简单的更新(如果存在)或插入(如果不存在)。使用 TSQLUnit,我编写了下面的测试来测试我的名为spModifyData的存储过程。测试的目的是验证当现有 ID 通过时,不会在数据库中创建新记录。
ALTER PROCEDURE [dbo].[ut_TestspModifyData]
AS
BEGIN
SET NOCOUNT ON;
-- Setup the test conditions by inserting test data
DECLARE
@newidone uniqueidentifier,
@newidtwo uniqueidentifier,
@newidthree uniqueidentifier,
@ExpectedID uniqueidentifier,
@ActualID uniqueidentifier
SET @ActualID = '13E7C741-9A04-4E84-B604-141874A6A9B4'
SET @ExpectedID = '13E7C741-9A04-4E84-B604-141874A6A9B4'
SET @newidone = newID()
SET @newidtwo = newID()
SET @newidthree = newID()
INSERT INTO DataSource( [DataSourcePrimarySource],[DataSourceName],[DataSourceRecordCreateDate]
,[DataSourceStatus] ,[DataSourceIsActive]) VALUES ('PRIMARY SOURCE ONE', 'XYZ', GETDATE() , @newidone, 1)
-- Exercise the test
EXEC spModifyDataSource @ActualID , 'PRIMARY SOURCE ONETWO', 'BBB', @newIDone, 0
-- Assert expectations
IF (@ExpectedID != @ActualID)
EXEC dbo.tsu_Failure 'ModifyData failed.'
-- Teardown
-- Implicitly done via ROLLBACK TRAN
END