Недавно я написал несколько модульных тестов базы данных tSQLt (через Red Gate SQL Test) для процедур, которые вызывают таблицы, содержащие (сохраненные) вычисляемые столбцы, и обратите внимание, что если я использую FakeTable SP, я обнаруживаю, что вычисляемые столбцы не заполняются ( они оцениваются как нулевые). Вычисляемый столбец является ключевым для теста, поэтому я не могу просто игнорировать столбец в тесте и не хочу дублировать логику.
Я оцениваю результаты с помощью tSQLt.AssertEqualsTable SP, поэтому я хочу убедиться, что значения столбцов одинаковы в обоих случаях.
На практике я обходил это, не используя FakeTable, а используя (частичный) оператор транзакции отката в конце теста (согласно сообщению в блоге по адресу http://sqlity.net/en)./585/how-to-rollback-in-procedures/) или явное удаление тестовые значения.
Я уверен, что должен быть лучший способ кодирования этого теста, и буду рад любым предложениям.