단위 테스트를위한 모의 HttpContextBase를 만들려고합니다.MoQ를 사용하려고 할 때 StrongNameKeyPair 문제가 발생했습니다.
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;
단위 테스트는 예외 던져
와 마지막 문에서 실패 .. StrongNameKeyPair 공개 키를 수 없습니다 을 얻을
System.Reflection.StrongNameKeyPair을 : System.ArgumentException를 .nGetPublicKey (부울 내 보낸, Byte [] 배열, 문자열 ) System.Reflection.StrongNameKeyPair.get_PublicKey() System.AppDomain.InternalDefineDynamicAssembly (의 AssemblyName 이름, AssemblyBuilderAccess 액세스, 문자열 DIR, 증거의 증거 PermissionSet를 requiredPermissions, PermissionSet를 optionalPermissions, PermissionSet를 refusedPermissions, StackCrawlMark & stackMark, IEnumerable`1 unsafeAssemblyAttributes) System.AppDomain. DefineDynamicAssembly (의 AssemblyName 이름, AssemblyBuilderAccess 액세스) Castle.DynamicProxy.ModuleScope.CreateModule (부울 signStrongName) Castle.DynamicProxy.ModuleScope.ObtainDynamicModuleWithStrongNam E() Castle.DynamicProxy.ModuleScope.ObtainDynamicModule (부울 isStrongNamed) Castle.DynamicProxy.Generators.Emitters.ClassEmitter.CreateTypeBuilder (ModuleScope modulescope, 문자열 이름, 유형 (ㅋ ㅋ ㅋ ㅋ 싹둑)
I
http://groups.google.com.br/group/castle-project-users/browse_thread/thread/85685cf32a795158 내가 HttpContextBase
때문에 서명 조립입니다 System.Web.Abstraction
의 한 부분이라고 생각하는 보정 있습니까 (변경 RSA 폴더 보안 등 설정) 인터넷 검색 여기에 제안 작동하지 않습니다. Moq은 실제로 동적 어셈블리에 서명하려고 시도하고 실패 할 것입니까? 스콧 Hanselman은에 의해
FWIW, 나는 시간을 많이 조롱 HttpContextBase하기 위해 MOQ을 사용하고 그 문제를 가진 적이있다.문제가 무엇이든 Moq와 HttpContextBase의 결합은 일반적이지 않습니다. –
트릭은 RSA가 아닌 MachineKeys 폴더에 권한을 설정해야한다는 것입니다. 당신이 신중한 독자가 아니라면 Ayende의 게시물은 이것을 완전히 명백하게하지 않습니다. –
이렇게 기뻤습니다. 우, 이틀 동안 마침내 고쳐졌습니다. D. 다른 누군가가이 문제를 겪을 경우를 대비하여 나를 도운 참고 자료를 추가하고 싶었습니다. http://ansaurus.com/question/3154345-strong-name-keys-on-windows-7 | http://msdn.microsoft.com/en-us/library/bb909654(v=vs.90).aspx 은 나에게 도움이되는 수정 프로그램에 제게 큰 도움이되었습니다. –