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-featureOn 你会写这样的东西

[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"));
}