У меня есть UDF, который принимает две даты и минутный интервал, выполняет некоторую математику даты, затем выплевывает разницу между date1 + интервал и date2, учитывая рабочие часы. Я только что узнал о типе проекта VS DB и пишу несколько юнит-тестов. Насколько я могу судить, я могу настроить только один контекст для каждого теста, хотя допускается несколько условий тестирования. Вот что я хотел бы сделать:
DECLARE @RC AS DATETIME, @date1 AS DATETIME, @date2 AS DATETIME, @interval AS INT;
SELECT @RC = NULL,
@date1 = '2010-8-10 08:00:00:000',
@date2 = '2010-8-10 08:00:00:000',
@interval = 240;
SELECT @RC = [dbo].[udf_DateDiffBusinessHours](@date1, @date2, @interval);
SELECT DATEDIFF(n, 0, @RC) AS RC;
SELECT @RC = NULL,
@date1 = '2010-8-10 08:00:00:000',
@date2 = '2010-8-10 10:00:00:000',
@interval = 240;
y
SELECT @RC = [dbo].[udf_DateDiffBusinessHours](@date1, @date2, @interval);
SELECT DATEDIFF(n, 0, @RC) AS RC;
Если я запускаю тесты в том виде, в каком они есть сейчас, оба теста являются скалярными значениями, первый тест не пройден, потому что он сравнивает свое ожидаемое значение с результатом второго запроса. Есть ли способ заставить эту работу?
Не популярная тема, а?