Tôi đang cố gắng tạo một HttpContextBase giả cho thử nghiệm đơn vị.StrongNameKeyPair vấn đề khi cố gắng sử dụng 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;
Các đơn vị kiểm tra thất bại tại báo cáo kết quả cuối cùng với
ném ngoại lệ: System.ArgumentException: Không thể lấy khóa công khai cho StrongNameKeyPair ..
System.Reflection.StrongNameKeyPair .nGetPublicKey (Boolean xuất, mảng Byte [], Chuỗi vùng chứa) System.Reflection.StrongNameKeyPair.get_PublicKey() System.AppDomain.InternalDefineDynamicAssembly (AssemblyName tên, truy cập AssemblyBuilderAccess, Chuỗi dir, bằng chứng chứng, PermissionSet requiredPermissions, PermissionSet optionalPermissions, PermissionSet refusedPermissions, StackCrawlMark & stackMark, IEnumerable`1 unsafeAssemblyAttributes) System.AppDomain. DefineDynamicAssembly (AssemblyName tên, AssemblyBuilderTruy cập truy cập) Castle.DynamicProxy.ModuleScope.CreateModule (Boolean signStrongName) Castle.DynamicProxy.ModuleScope.ObtainDynamicModuleWithStrongNam e() Castle.DynamicProxy.ModuleScope.ObtainDynamicModule (Boolean isStrongNamed) Castle.DynamicProxy.Generators.Emitters.ClassEmitter.CreateTypeBuilder (ModuleScope modulescope, String name, Loại (blah blah snip)
tôi googled và các đề xuất ở đây dường như không hoạt động (thay đổi cài đặt bảo mật thư mục RSA, v.v.) http://groups.google.com.br/group/castle-project-users/browse_thread/thread/85685cf32a795158
Tôi có thể nghĩ rằng vì HttpContextBase
là một phần được ký kết. Moq sẽ thực sự cố gắng ký hợp đồng năng động, và thất bại?
FWIW, tôi đã sử dụng Moq để thử HttpContextBase rất nhiều lần và không bao giờ có vấn đề đó.Dù vấn đề của bạn là gì, nó không phải là chung cho sự kết hợp của Moq và HttpContextBase. –
Bí quyết là quyền cần phải được đặt trên thư mục MachineKeys chứ không phải RSA. Bài đăng từ Ayende không làm cho điều này hoàn toàn rõ ràng nếu bạn không phải là người đọc cẩn thận. –
Rất vui vì tôi đã tìm thấy điều này, ugh, hai ngày và cuối cùng là cố định: D. Chỉ muốn thêm một số tài liệu tham khảo khác đã giúp tôi, trong trường hợp bất kỳ ai khác thực hiện điều này: http://ansaurus.com/question/3154345-strong-name-keys-on-windows-7 | http://msdn.microsoft.com/en-us/library/bb909654(v=vs.90).aspx thực sự đã giúp tôi khắc phục sự cố đã hiệu quả đối với tôi. –