Asserts that mock object WERE NOT called within current unit test execution. Fails if mock object were called during current unit test execution.

Arguments

  • v_PretendObjectName – Name of the mock object. Supports four part object name. SYSNAME data type.
  • 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 primary outer procedure*/

CREATE PROC SetupDefaultUsers

AS

BEGIN

       PRINT 'DO NOTHING'

END

GO

 

/*create unit test procedure*/

CREATE PROCEDURE UT_USERTESTS_AddNewUser

AS

BEGIN

       --make sure that this test is the part of the USERTESTS suite

       EXEC DBTD_UNIT_TEST 'USERTESTS'

       --create mock for inner procedure

       EXEC DBTD_CREATE_MOCK_PROCEDURE 'AddNewUser', NULL, NULL, NULL

       --call primary busines logic

       EXEC SetupDefaultUsers

       --assert that inner procedure did not execute AddNewUser mock

       --because it should do nothing

       EXEC DBTD_ASSERT_MOCK_NOT_CALLED

              @v_PrependObjectName  = 'AddNewUser',

              @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_AddNewUser

ROLLBACK

GO

 

See Also