2012-04-06 2 views
4

Я недавно начал тестировать хранимые процедуры с использованием TST (tst.codeplex.com) и нашел это весьма полезным - один недостаток - это то, что мы не можем изолировать зависимости и «mock» 'другие вызовы SP/function (например, мы будем делать для зависимостей объектов C#, например,). Я не возражаю потратить некоторое время на добавление этой функции в TST или создание новой структуры, но я действительно не знаю, как начать с нее.«Стыковка» вызовов SP (из других SP) при использовании TST

Любые идеи? Любая помощь оценивается.

PS: Я знаю, что SP никогда не были разработаны с учетом тестирования, но это может быть отличным подарком для устаревших проектов, в которых уже присутствует 100s SP.

ответ

0

Борьба с чем-то подобным сама, и мне интересно, может ли следующий подход к насмешкам SP.

Просто перед запуском теста, который требует высмеивал SP тест рамки должны:

  • переименовывать оригинальный SP (напрмер: HiddenSp)
  • создать новую Sp с теми же параметрами
  • в новый код SP добавить код для проверки тех комбинаций параметров, для которых требуется посмеянный ответ
  • , при необходимости, высчитывают отклик, если необходимо
  • или
  • передать запрос через к исходному SP
  • выполнить тест
  • удалить фиктивный
  • вернуть имя исходного SP

Мы не используем TST, но мне кажется, я буду добавлять что-то подобное нашему (ручному) SQL-тестированию. Не подойдите к нему в течение нескольких недель, поэтому я хотел бы услышать, работает ли это для вас.

2

Ответ на предыдущий ответ действительно, в то время как подход переименования далеко не идеален, он действительно работает. Я демо-е изд его на блоге, предназначенного для SSDT базы данных проектов, но принцип тот же:

https://tangodude.wordpress.com/2014/02/08/ssdt-database-projects-mocking-database-objects-for-isolated-unit-testing-kind-of/

tSQLt имеет всемерное лучшую поддержку насмехаясь, хотя:

http://tsqlt.org/user-guide/isolating-dependencies/

Смежные вопросы