gpt4 book ai didi

c# - 在单元测试中设置 IHostingEnvironment

转载 作者:行者123 更新时间:2023-12-02 00:05:23 24 4
gpt4 key购买 nike

我目前正在将项目从 .NET Core RC1 升级到新的 RTM 1.0 版本。在 RC1 中,有一个 IApplicationEnvironment,在 1.0 版本中被替换为 IHostingEnvironment

在 RC1 中我可以做到这一点

public class MyClass
{
protected static IApplicationEnvironment ApplicationEnvironment { get;private set; }

public MyClass()
{
ApplicationEnvironment = PlatformServices.Default.Application;
}
}

有人知道如何在 v1.0 中实现这一点吗?

public class MyClass
{
protected static IHostingEnvironment HostingEnvironment { get;private set; }

public MyClass()
{
HostingEnvironment = ???????????;
}
}

最佳答案

如果需要,您可以使用模拟框架来模拟IHostEnvironment,或者通过实现接口(interface)来创建假版本。

开设这样的类(class)...

public class MyClass {
protected IHostingEnvironment HostingEnvironment { get;private set; }

public MyClass(IHostingEnvironment host) {
HostingEnvironment = host;
}
}

您可以使用 Moq 设置单元测试示例...

public void TestMyClass() {
//Arrange
var mockEnvironment = new Mock<IHostingEnvironment>();
//...Setup the mock as needed
mockEnvironment
.Setup(m => m.EnvironmentName)
.Returns("Hosting:UnitTestEnvironment");
//...other setup for mocked IHostingEnvironment...

//create your SUT and pass dependencies
var sut = new MyClass(mockEnvironment.Object);

//Act
//...call you SUT

//Assert
//...assert expectations
}

关于c# - 在单元测试中设置 IHostingEnvironment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38135495/

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