gpt4 book ai didi

visual-studio-2012 - 与 2012 年 : Shims compile 相比

转载 作者:行者123 更新时间:2023-12-04 02:32:19 24 4
gpt4 key购买 nike

我正在尝试在 VS 2012 Ultimate 中制作垫片,如 MSDN 站点中所述:

[TestClass]
public class TestClass1
{
[TestMethod]
public void TestCurrentYear()
{
int fixedYear = 2000;

using (ShimsContext.Create())
{
// Arrange:
// Detour DateTime.Now to return a fixed date:
System.Fakes.ShimDateTime.NowGet =
() =>
{ return new DateTime(fixedYear, 1, 1); };

// Instantiate the component under test:
var componentUnderTest = new MyComponent();

// Act:
int year = componentUnderTest.GetTheCurrentYear();

// Assert:
// This will always be true if the component is working:
Assert.AreEqual(fixedYear, year);
}
}
}

http://msdn.microsoft.com/en-us/library/hh549176.aspx

但是当我编译我的测试项目时,我在输出中得到一个概念:

warning : Some fakes could not be generated. For complete details, set Diagnostic attribute of the Fakes element in this file to 'true' and rebuild the project.



如何解决此警告?

最佳答案

Visual Studio 2012 Update 1 改进了 Fakes 中的代码生成,以简化代码生成问题的故障排除。每当无法为特定类型生成 Stub 或 Shim 时,Fakes 现在可以生成警告消息 - 您可以在 Visual Studio 的错误列表窗口中看到这一点。

但是,为了防止大量程序集(例如 System)的警告数量过多,默认情况下 Fakes 会生成单个警告。您可以通过设置 Diagnostic 来查看完整的警告消息列表。 Fakes 的属性.Fakes 文件中的 XML 元素到 “真实”或“1”并重建项目。 (有关示例,请参阅下面的第一行代码。)

要解决该警告,请更改 .Fakes 文件以仅生成您在测试中需要的 stub 和垫片。详情here
here可用选项的完整列表

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" Diagnostic="true">
<Assembly Name="System" Version="4.0.0.0"/>
<StubGeneration Disable="true" />
<ShimGeneration>
<Clear/>
<Add FullName="System.DateTime!"/>
</ShimGeneration>
</Fakes>

关于visual-studio-2012 - 与 2012 年 : Shims compile 相比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14067332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com