Вот мой не требующий высоких технологий способ быстрого хранения примеров, которые удобно расположены в DDL
<code>
USE [SpacelySprockets]
<br/>GO
<br/>/****** Object: StoredProcedure [dbo].[uspBrownNoseMrSpacely] Script Date: 02/03/3000 00:24:41 ******/
<br/>SET ANSI_NULLS ON
<br/>GO
<br/>SET QUOTED_IDENTIFIER ON
<br/>GO
<br/>--================================
<br/>--Stored Procedure DDL:
<br/>--================================
--Example Inputs
<br/>/*
<br/>DECLARE @SuckupPloyId int
<br/>DECLARE @SuckupIdentityRecordId int
<br/>SET @SuckupPloyId = 3
<br/>*/
-- =============================================
<br/>-- Author: 6eorge Jetson
<br/>-- Create date: 01/02/3000
<br/>-- Description: Sucks up to the boss
<br/>-- =============================================
<br/>CREATE PROCEDURE [dbo].[uspBrownNoseMrSpacely]
<br/> @SuckupPloyId int
<br/> ,@SuckupIdentityRecordId int OUTPUT
<br/>AS
<br/>BEGIN
DECLARE @EmployeeId int
DECLARE @SuckupPoints int
DECLARE @DateTimeStamp datetime
SET @EmployeeId = dbo.svfGetEmployeeId('6eorge Jetson')
SET @SuckupPoints = dbo.svfGetSuckupPoints(@SuckupPloyId)
SET @DateTimeStamp = getdate()
--Data state-changing statement in sproc
INSERT INTO [dbo].[tblSuckupPointsEarned]([EmployeeId], [SuckupPoints], [DateTimeStamp] )
VALUES (@EmployeeId, @SuckupPoints, @DateTimeStamp)
SET @SuckupIdentityRecordId = @@Identity
END
</code>
--Unit Test Evidence Display
/*
SELECT
@EmployeeId as EmployeeId
,@SuckupPoints as SuckupPoints
,@DateTimeStamp as DateTimeStamp
*/
--==========================================================================
--After editing for low-tech, non-state changing "unit-like" test invocation
--==========================================================================
--Example Inputs
DECLARE @SuckupPloyId int
DECLARE @SuckupIdentityRecordId int
SET @SuckupPloyId = 3
/*
-- =============================================
-- Author: 6eorge Jetson
-- Create date: 01/02/3000
-- Description: Sucks up to the boss
-- =============================================
CREATE PROCEDURE [dbo].[uspBrownNoseMrSpacely]
@SuckupPloyId int
,@SuckupIdentityRecordId int OUTPUT
AS
BEGIN
*/
DECLARE @EmployeeId int
DECLARE @SuckupPoints int
DECLARE @DateTimeStamp datetime
SET @EmployeeId = dbo.svfGetEmployeeId('6eorge Jetson')
SET @SuckupPoints = dbo.svfGetSuckupPoints(@SuckupPloyId)
SET @DateTimeStamp = getdate()
--Data state-changing statement now commented out to prevent data state change
-- INSERT INTO [dbo].[tblSuckupPointsEarned]([EmployeeId], [SuckupPoints], [DateTimeStamp] )
-- VALUES (@EmployeeId, @SuckupPoints, @DateTimeStamp)
SET @SuckupIdentityRecordId = @@Identity
--END --Need to comment out the sproc "END" also
--Unit Test Evidence Display
SELECT
@EmployeeId as EmployeeId
,@SuckupPoints as SuckupPoints
,@DateTimeStamp as DateTimeStamp
Он работает еще лучше для udfs, так как нет необходимости менять состояние.
Понятно, что я бы не рекомендовал это вместо инфраструктуры тестирования,
но если я буду придерживаться этой простой дисциплины стоимости секунд
Утверждают, что мой sproc размером с управляемый размер проходит, по крайней мере, простой «модульный тест»
перед выполнением CREATE PROCEDURE я обнаружил, что совершаю меньше ошибок (скорее всего из-за дисциплины, а не самого теста).