У меня есть некоторый код, который выполняет некоторую унаследованную операцию «база данных», а затем обрабатывает результат. Я хочу написать модульный тест, который проверяет метод, который вызывает унаследованный код, не взаимодействуя с «базой данных».
Мой код выглядит примерно так:
public static bool CallRoutine(LegacySession session, /* routine params*/)
{
try
{
LegacyRoutine routine = session.CreateRoutine(/* routine params */);
routine.Call();
// Process result
}
catch (LegacyException ex)
{
// Perform error handling
}
}
Если бы это был весь мой код, я бы создал интерфейсы, которые реализуют LegacySession
и LegacyRoutine
, а затем написал бы модульные тесты, использующие фиктивные реализации этих интерфейсов с использованием MOQ или чего-то подобного. Проблема в том, что у меня нет доступа к коду для LegacyRoutine
или LegacySession
, поэтому я не могу заставить их реализовать интерфейс.
Есть какие-нибудь идеи о том, как я могу сделать это, не слишком меняя производственный код?