Добавление тестов tSQLt к существующему производственному продукту, поэтому мы не можем изменять таблицы, ограничения и т. Д. В настоящее время все ограничения помечены как «PK_dbo.ViolationCategory», когда они должны быть похожи на «PK_ViolationCategory»
Когда я бегу:
EXEC tSQLt.NewTestClass 'AdHocReportFiltersTestConstraint';
GO
CREATE PROCEDURE [AdHocReportFiltersTestConstraint].[Setup]
AS
BEGIN
EXEC tSQLt.FakeTable 'dbo.AdHocReports'
END
GO
CREATE PROCEDURE [AdHocReportFiltersTestConstraint].[test_AdHocReportFilters_Constraint]
AS
BEGIN
DECLARE @Id uniqueidentifier = NEWID()
DECLARE @Name NVARCHAR(Max) = 'Test_Name'
DECLARE @Value NVARCHAR(Max) = 'Test_Value'
DECLARE @AdHocReport_ID uniqueidentifier = NEWID()
INSERT INTO dbo.AdHocReportFilters ([Id], [Name], [Value], [AdHocReport_Id])
VALUES (@Id, @Name, @Value, @AdHocReport_ID)
exec tSQLt.ApplyConstraint 'dbo.AdHocReports', 'PK_dbo.AdHocReportFilters';
END
EXEC tSQLt.RunTestClass 'AdHocReportFiltersTestConstraint';
GO
получаю ошибку,
(1 row affected)
[AdHocReportFiltersTestConstraint].[test_AdHocReportFilters_Constraint] failed:
(Error) The INSERT statement conflicted with the FOREIGN KEY constraint
"FK_dbo.AdHocReportFilters_dbo.AdHocReports_AdHocReport_Id". The conflict occurred in
database "CR", table "dbo.tSQLt_tempobject_fbc9c8bf09e742929eccae914d5e440d",
column 'Id'.[16,0]{test_AdHocReportFilters_Constraint,11}
Есть идеи, как обойти это?
Как только я получу эту работу, я добавлю вторую запись, чтобы нарушить ограничение PK и поймать ошибку.