Asserts that stub object was called less than specified number of times within the current unit test execution. Fails if stub object were called more than expected number of times during current unit test execution.
Arguments
-
v_PretendObjectName – Name of the pretend object. Supports four part object name. SYSNAME data type.
-
v_NumberOfCalls - The number of calls that we expect this pretend object to be called, INT. If NULL value provided then this assert will check that mock object called any number of times.
-
v_UserMessage – Message to report when assertion fails, NVARCHAR(MAX)
Note: If you are planning to run unit test manually, you must use DBTD_UNIT_TEST hint procedure to explicitly define a unit test procedure as the unit test.
Examples
SQL Server
/*Create inner procedure that will be called within outer scope*/
CREATE PROC AddNewUser
@UserName VARCHAR(50),
@UserRole VARCHAR(50)
AS
BEGIN
--Do something
PRINT @UserName
PRINT @UserRole
END
GO
/*create unit test procedure*/
CREATE PROCEDURE UT_USERTESTS_STUB_AddNewUserC2
AS
BEGIN
--make sure that this test is the part of the USERTESTS suite
EXEC DBTD_UNIT_TEST 'USERTESTS'
--create stub
EXEC DBTD_CREATE_STUB_PROCEDURE 'STUB_AddNewUser'
,'AddNewUser
',
NULL
--call it
EXEC STUB_AddNewUser
'John'
,'Level 1
'
EXEC STUB_AddNewUser
'Steve'
,'Level 2
'
EXEC STUB_AddNewUser
'Martha'
,'Level 3
'
--assert that inner procedure were called
--and that it happened less than 3 times
EXEC DBTD_ASSERT_STUB_CALLED_LESS_THAN
@v_PrependObjectName = 'STUB_AddNewUser',
@v_NumberOfCalls = 3,
@v_UserMessage = 'We have issues'
END
GO
--run just one unit test alone to verify results
--note that we will explicitly use transactions
--because we run unit test outside of the DBTestDriven framework
BEGIN TRAN
EXEC UT_USERTESTS_STUB_AddNewUserC2
ROLLBACK
GO
See Also