У меня есть хранимая процедура, которую я пытаюсь проверить для правильной генерации выходного параметра. Я экспериментировал с tsqlt.ExpectException, но это не сработало. Я вместо этого пытаюсь tsqlt.AssertEqualsTable.
CREATE TABLE #actual (msg NVARCHAR(MAX));
CREATE TABLE #expected (msg NVARCHAR(MAX));
INSERT #expected (msg) VALUES (N'Location w1005 has LPNs that were produced against a different production order than 1')
--EXEC tSQLt.ExpectException @ExpectedMessage = N'Location 1 has LPNs that were produced agains a different production order than orderNumber';
EXEC dbo.wms_whse_check_location
@command = @Command, @operLocationHasOtherLPN=@operLocationHasOtherLPN OUTPUT;
INSERT #actual (msg) VALUES (@operLocationHasOtherLPN)
EXEC tsqlt.AssertEqualsTable @Expected = '#expected', @actual = '#actual'
Тест не пройден, и вывод команды tsqlt:
Неожиданные / отсутствующие строки набора результатов! | м | мсг | + --- + --------------------------------------------- ----------------------------------------- + | <| Местоположение w1005 имеет номера LPN, которые были произведены против производственного заказа, отличного от 1 | |> | Местоположение w1005 имеет LPN, которые были произведены против производственного заказа, отличного от l |
В приведенном выше фрагменте может быть трудно увидеть, но строка <(ожидаемая) идентична> (фактическая) row - tsqlt находит разницу, которой на самом деле не существует. Кажется, я не выбираю правильный метод.
Кто-нибудь написал тесты для проверки выходных параметров? Какой метод подходит? Спасибо
ps Извиняюсь за грязное форматирование. Я не обычный постер.