为什么我不能在.NET Core 6.0中对“System”进行Fake-Mock(VS Enterprise 2022)

Tianyu Sun-MSFT 27,801 信誉分 Microsoft 供应商
2024-01-30T08:58:41.9633333+00:00

为什么我不能在.NET Core 6.0中对“System”进行Fake-Mock(VS Enterprise 2022)?我不知道发生了什么。

  之前我尝试使用“using System.Fakes;”,但是在参考了下面这个文档以后提示“缺少一个程序集引用”  

用 Microsoft Fakes 隔离测试代码 - Visual Studio (Windows) | Microsoft Learn

  可是我仍能在我的“Fakes”文件夹中看到“System.fakes”文件。

  请为我的问题在.NET Core下提供一个可行的例子。

  我的代码如下:

using System.Fakes; 

[TestClass]
public class MockDateTimeTest{
[TestMethod]
public async void TestTodayIsLastDateOfYear(){
// Arrange

// Actbool result = false;
using (ShimsContext.Create()){

ShimDateTime.NowGet = () => new DateTime(2013, 12, 31);
result = DateTimeHelper.IsTodayLastDateOfYear();
}

// Assert
Assert.IsTrue(result);
} 

}

public static class DateTimeHelper{
public static bool IsTodayLastDateOfYear()
{DateTime today = DateTime.Now;
if (today.Month == 12 && today.Day == 31)
return true;elsereturn false;
}
}

让我知道你是否可以在.NET Core下成功使用“using System.Fakes”,并请尽快回复我。提前感谢。

  Note:此问题总结整理于:Why I can't Fake-Mock "System" in .net core 6.0(VS Enterprise 2022) - Microsoft Q&A

Visual Studio 测试
Visual Studio 测试
Visual Studio: 一系列 Microsoft 集成开发工具套件,用于生成适用于 Windows、Web 和移动设备的应用程序。测试: 应用测试作为分析或诊断手段的行为或过程。
11 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Anna Xiu-MSFT 26,561 信誉分 Microsoft 供应商
    2024-01-30T09:10:44.3166667+00:00

    你好,请右击System.Runtime程序集选择Add Fakes Assembly,而不是System。 


    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助