Я пытаюсь создать макет HttpContextBase для модульного теста.Проблема StrongNameKeyPair при попытке использовать MoQ
var fakePrinciple = new GenericPrincipal(
new GenericIdentity(userId),
rolesList.ToArray());
var mockHttpContext = new Mock<HttpContextBase>();
mockHttpContext.Setup(t => t.User).Returns(fakePrinciple);
HttpContextBase mockedContext = mockHttpContext.Object;
Испытательное устройство не на последнем заявлении с
выбросил исключение: System.ArgumentException: Невозможно получить открытый ключ для StrongNameKeyPair ..
System.Reflection.StrongNameKeyPair .nGetPublicKey (Boolean exported, Byte [] array, String container) System.Reflection.StrongNameKeyPair.get_PublicKey() System.AppDomain.InternalDefineDynamicAssembly (AssemblyName имя, AssemblyBuilderAccess доступа, Строка реж, фактические данные доказательства, PermissionSet requiredPermissions, PermissionSet optionalPermissions, PermissionSet refusedPermissions, StackCrawlMark & stackMark, IEnumerable`1 unsafeAssemblyAttributes) System.AppDomain. DefineDynamicAssembly (AssemblyName имя, AssemblyBuilderAccess доступа) Castle.DynamicProxy.ModuleScope.CreateModule (Boolean signStrongName) Castle.DynamicProxy.ModuleScope.ObtainDynamicModuleWithStrongNam е() Castle.DynamicProxy.ModuleScope.ObtainDynamicModule (Boolean isStrongNamed) Castle.DynamicProxy.Generators.Emitters.ClassEmitter.CreateTypeBuilder (ModuleScope modulescope, имя String, тип (бла-бла-чик)
I гугле и предложения здесь не похожи на работу (установку изменение RSA безопасности папки и т.д.) http://groups.google.com.br/group/castle-project-users/browse_thread/thread/85685cf32a795158
Я правильно думать, что HttpContextBase
является частью System.Web.Abstraction
, которая является знаковой сборкой. Moq на самом деле попытается подписать динамическую сборку и потерпеть неудачу?
FWIW, я использовал Moq издеваться HttpContextBase много раз и никогда не было этой проблемы.Какова бы ни была ваша проблема, она не является общей для комбинации Moq и HttpContextBase. –
Фокус в том, что разрешения должны быть установлены в папке MachineKeys, а не RSA. Сообщение от Айенде не делает это совершенно очевидным, если вы не внимательны к читателю. –
Так рад, что я нашел это, тьфу, два дня и, наконец, исправил: D. Просто хотел добавить еще несколько ссылок, которые помогли мне, если кто-то еще столкнется с этим: http://ansaurus.com/question/3154345-strong-name-keys-on-windows-7 | http://msdn.microsoft.com/en-us/library/bb909654(v=vs.90).aspx действительно помог мне разобраться в исправлении, которое сработало для меня. –