Tag: 垫片

MS VisualStudio 2012中的ShimNotSupportedException

我只是想在Visual Studio 2012 RC中熟悉新的Fakes Isolation Framework,但我因此ShimNotSupportedException的问题。 在第一次尝试时,我尝试连接一个委托的每个单一的shim方法,在尝试运行/调试测试时抛出了ShimNotSupportedException 。 [TestMethod] public void GetFoo_ValidBar_ReturnsBaz() { using(ShimsContext.Create()) { ShimDateTime.NowGet = () => new DateTime(2012,08,11,10,20,59); const string expected = “20120811_102059”; string actual = GetFoo(); Assert.AreEqual(expected,actual); } } 这是相应的堆栈跟踪: GetFoo_ValidBar_ReturnsBaz测试方法抛出了一个exception:Microsoft.QualityTools.Testing.Fakes.Shims.ShimNotSupportedException:System.DateTime,位于Microsoft.QualityTools的Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.InvokeEvent(T值,Action1 eh)。 Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.InternalAttachDetour(Object optionalReceiver,MethodBase)中的Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.CheckInstrumentation(MethodBase方法)中的Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.OnAttachedUnsupportedMethod(MethodBase方法)在Microsoft.QualityTools.Testing.Fakes.Shims.ShimRuntime.SetShimMethod(Delegate optionalStub,Object optionalReceiver,Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.AttachDetour(Object optionalReceiver,MethodBase方法,Delegate detourDelegate)上的方法,委托detourDelegate), MethodBase方法) at Microsoft.QualityTools.Testing.Fakes.Sool.ThimRun .SetShimPublicStatic(Delegate optionalStub,Type receiverType,String name,Type returnType,Type [] parameterTypes)在BazTests.cs的GetFoo_ValidBar_ReturnsBaz()的System.Fakes.ShimDateTime.set_NowGet(Func’1值):第48行。 在阅读了我在MSDN上找到的两个线程处理这个问题后,我按照他们的指示(关闭CodeCoverage,删除.testsettings文件),这对我来说不起作用! 不过我找到了解决这个问题的方法: 首先从测试资源管理器运行所有测试(而不是直接从编码区域使用“MSTest测试(单击运行)”按钮)一切正常,没有抛出exception。 […]