尝试使用moq 3.1在VS2010下使用.net 4.0运行我的单元测试时,我收到以下异常.
尝试使用安全透明方法'SPPD.Backend.DataAccess.Test.Specs_for_Core.When_using_base.Can_create_mapper()'来访问安全关键方法'Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotNull(System.Object)'失败.
程序集"SPPD.Backend.DataAccess.Test,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"标记为AllowPartiallyTrustedCallersAttribute,并使用2级安全透明度模型.2级透明度导致AllowPartiallyTrustedCallers程序集中的所有方法默认情况下变为透明安全性,这可能是此异常的原因.
我正在运行的测试非常简单,看起来如下所示:
[TestMethod] public void Can_create_mapper() { this.SetupTest(); var mockMapper = new Moq.Mock().Object; this._Resolver.Setup(x => x.Resolve ()).Returns(mockMapper).Verifiable(); var testBaseDa = new TestBaseDa(); var result = testBaseDa.TestCreateMapper (); Assert.IsNotNull(result); //<<< THROWS EXCEPTION HERE Assert.AreSame(mockMapper, result); this._Resolver.Verify(); }
我不知道这意味着什么,我一直在环顾四周,对这个话题一无所知.我找到的最接近的参考是这个http://dotnetzip.codeplex.com/Thread/View.aspx?ThreadId=80274,但它不是很明确他们做了什么修复它...
有人有任何想法?
在引用项目的AssemblyInfo.cs中添加以下行
[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]