IFeatureManager 单元测试
IFeatureManager Unit Testing
我在 Azure 门户中有一个功能标志,用于 .NET Core Web 应用程序中的某些控制器。
在运行时,它可以正确打开和关闭真实门户上的 FF。
我应该写 2 个单元测试,模拟 Feature Flag 何时打开和关闭。
对于Off,我可以写
var featMan = new Mock<IFeatureManager>().Object;
并且有效,问题是在 On 时模拟。
我找到了这个页面,https://github.com/microsoft/FeatureManagement-Dotnet/issues/19#issue-517953297,但是在可下载代码中没有 StubFeatureManagerWithFeatureAOn 定义。
您只需要在特定情况下将您的 Mock
配置为 return 特定值。例如要模拟 test-feature
是 On
你会写这样的东西
[Test]
public async Task TestFeatureManager()
{
var featureManageMock = new Mock<IFeatureManager>();
featureManageMock
.Setup(m => m.IsEnabledAsync("test-feature"))
.Returns(Task.FromResult(true));
var featureManager = featureManageMock.Object;
Assert.IsTrue(await featureManager.IsEnabledAsync("test-feature"));
}
我在 Azure 门户中有一个功能标志,用于 .NET Core Web 应用程序中的某些控制器。
在运行时,它可以正确打开和关闭真实门户上的 FF。
我应该写 2 个单元测试,模拟 Feature Flag 何时打开和关闭。
对于Off,我可以写
var featMan = new Mock<IFeatureManager>().Object;
并且有效,问题是在 On 时模拟。
我找到了这个页面,https://github.com/microsoft/FeatureManagement-Dotnet/issues/19#issue-517953297,但是在可下载代码中没有 StubFeatureManagerWithFeatureAOn 定义。
您只需要在特定情况下将您的 Mock
配置为 return 特定值。例如要模拟 test-feature
是 On
你会写这样的东西
[Test]
public async Task TestFeatureManager()
{
var featureManageMock = new Mock<IFeatureManager>();
featureManageMock
.Setup(m => m.IsEnabledAsync("test-feature"))
.Returns(Task.FromResult(true));
var featureManager = featureManageMock.Object;
Assert.IsTrue(await featureManager.IsEnabledAsync("test-feature"));
}