Внесены некоторые изменения в наш код, и теперь мне нужно пересмотреть некоторые модульные тесты, чтобы убедиться, что они совместимы с новым кодом.Я столкнулся с проблемой.В этом:
ChannelLoad loader = new ChannelLoad(_customerDbMock, _bulkCopyMock);
loader.Execute(taskId);
Объект «загрузчик» теперь пытается соединиться с другим объектом, чтобы получить строковое значение, тогда как раньше строка возвращалась автоматически.Таким образом, очевидное решение состоит в том, чтобы смоделировать этот объект для возврата подходящего значения для теста.Однако по разным причинам я не могу легко это сделать.
В идеале, я хотел бы иметь возможность получить "настоящий" (то есть, как указано в коде) объект загрузчика, который выполняет "настоящий"Msgstr "Выполнить метод, но который имеет значение" макет "для этой конкретной строки.Но я действительно не уверен, как это сделать - даже если это возможно - с Rhino Mocks.Рассматриваемое строковое свойство не является абстрактным или чем-то еще - оно защищено и фактически доступно только для чтения.Вот как это выглядит внутри «загрузчика»:
protected string DbConnectionString
{
get
{
return _Service.GetLocalDatabase().GetConnectionString(_Service);
}
}
И проблема в том, что для тестовой среды «GetLocalDatabase» ничего не возвращает.
Кто-нибудь мне здесь поможет?Есть ли способ, которым я могу смоделировать это, используя Rhino Mocks, или это мой единственный способ реорганизовать код, чтобы он не полагался на внешний объект?Если последнее, указатели также будут полезны.
Приветствия, Мэтт