Знакомство с эмуляторами SharePointГруппа разработчиков Visual Studio с гордостью объявляет о выпуске эмуляторов SharePoint для Visual Studio 2012. Модульное тестирование программного кода для SharePoint –– довольно трудная задача. В идеальном случае тестируемый код следует изолировать от среды SharePoint, например, с помощью платформы изоляции Microsoft Fakes. К сожалению, отзывы специалистов, опробовавших этот подход на практике, сводятся к следующему: создание и поддержка макетов и тестовых заполнителей для среды SharePoint отнимают много времени и сил. К счастью, группа разработчиков эмуляторов SharePoint взялась за решение этой непростой задачи. Эмуляторы SharePoint –– это система макетов на основе оболочек совместимости, реализующих основные режимы работы объектной модели сервера SharePoint 2010. Системные требования· Microsoft SharePoint 2010 Server (SharePoint 2010 Server or SharePoint 2010 Foundation) · Microsoft Visual Studio 2012 Ultimate Получение эмуляторов SharePointЭмуляторы SharePoint можно скачать на сайте, где публикуются пакеты NuGet. Выполните поиск по официальному сайту публикации пакетов NuGet, введя запрос «SharePoint Emulators». Использование эмуляторов SharePointЭмуляторы SharePoint легко и просто использовать одновременно с существующими тестами. Тесты на основе эмуляторов SharePoint можно разрабатывать при помощи API SharePoint, для этого потребуется только оболочка SharePointEmulationScope. Весь код, запускаемый из оболочки SharePointEmulationScope, будет автоматически перенаправлен в среду выполнения. Все вызовы к сборке Microsoft.SharePoint.dll автоматически перенаправляются в эмулятор SharePoint. Создание расширений для эмуляторов SharePointМасштабность и сложность API SharePoint заставили нас сосредоточиться на наиболее часто используемых типах и методах. Если поддержка типа не реализована, то для успешного запуска теста нужно будет выполнить дополнительные действия. В качестве примера приведем тест, который завершается сбоем и возвратом еще не реализованного исключения. Если будет выявлен сценарий, обработка которого приводит к сбою теста, то оптимальный выход в этом случае — расширить возможности эмулятора, реализовав новый режим работы. Для правильной работы эмуляторов SharePoint требуется платформа оболочек совместимости Microsoft Fakes. Эмуляторы — это набор конкретных вариантов реализации данных оболочек. Если будет вызвана отсутствующая оболочка совместимости, необходимо реализовать ее. Подробные сведения о нужной оболочке совместимости приведены в сообщении об ошибке, в данном примере оно имеет вид SPList.GetItems(SPQuery). Если данный программный код добавить к предыдущему примеру, то указанный в нем тест завершится успешно. Данную методику можно использовать для реализации неподдерживаемых режимов работы и настройки эмуляторов в соответствии со средой выполнения. Запуск тестов для различных эмуляторовОдновременный запуск тестов для нескольких эмуляторов обеспечивает следующие преимущества: повышение производительности, изоляцию от SharePoint и снижение требований к обслуживанию тестовой инфраструктуры SharePoint. Однако иногда тесты выполняются на реальном сервере SharePoint. Эмуляторы SharePoint позволяют повторно запускать код тестов в контексте другой среды. SharePointEmulationScope принимает в качестве параметра дополнительный перечисляемый тип EmulationMode. Включенный по умолчанию режим работы предусматривает перехват всех вызовов к библиотеке Microsoft.SharePoint.dll в реальном времени. Второе значение транзитного параметра позволяет вызовам обращаться напрямую к оригинальной сборке в обход любых оболочек совместимости. С помощью значения перечисляемого типа можно управлять контекстом запуска тестов. Существует множество способов получить значение параметра EmulationMode и контролировать его. Чтобы контролировать режим эмуляции, разработчики эмулятора SharePoint обычно применяют управляемые данными тесты. Разработчики подготовили тесты, использующие возможности эмуляторов SharePoint для тестирования сервера SharePoint в конфигурации по умолчанию. Мы применяем данные тесты и данный подход, чтобы проверять режимы работы эмуляторов SharePoint. Существует множество альтернативных вариантов их использования: написание программного кода настройки и инициализации, составление директив препроцессора и т. п. Ресурсы |