ShimSPWeb().LocaleGet недоступен?
Я начал изучать новую функцию в VisualStudio 2012, где вы можете добавить поддельную сборку DLL для модульного тестирования. Я работаю с SharePoint 2010, и все мы сейчас испытываем боль в модульном тестировании кода, который зависит от API SharePoint.
Я добавил поддельную сборку для Microsoft.SharePoint, и она работала нормально, но я пришел к точке, где мне нужно переопределить метод SPWeb.Locale
, Я думал, что это будет легко. Я думал, что будет такой метод, как ShimSPWeb.LocaleGet
но нет.
Это единственные варианты, которые у меня есть в отношении Locale
на моем ShimSPWeb
Короче говоря: должно быть shimWeb.LocaleGet
имеется в наличии.
1 ответ
Я понял. Вы можете добавить диагностику в файл настроек *.fakes. Это позволяет отлаживать вывод при генерации поддельной сборки.
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" Diagnostic="true">
Когда я сделал это, я получил этот вывод:
unstubbable: метод является абстрактным и не может быть задан, тип System.Globalization.CultureInfo недоступен в целевой версии платформы
SharePoint 2010 предназначен для.Net версии 3.5. Мой модульный тест был настроен на целевую платформу.Net 4.0. Я изменил цель моего проекта модульного тестирования на 3.5, восстановил фальшивую сборку и вуаля! Это сработало!