如何使用 Microsoft Fakes 框架对摘要 class 进行单元测试

How to unit test an abstract class using Microsft Fakes framework

我有以下摘要 class,我想为其编写单元测试。我是 Microsoft Fakes 的新手,到目前为止我只将它用于测试 public classes.

public abstract class ProvideBase 
{
    private string tag = string.Empty;

    public string Tag
    {
        get { return tag; }         
        set { tag = value; }
    }

}

public static String GetMyConfig(string sectionName)
{
    MyConfiguration config = MyConfiguration.GetConfig(sectionName);
    return config.GetMyConfig(config.DefaultConfig);
}

我为 GetMyConfig() 方法编写了单元测试。然而,我的测试覆盖率不是 100%,因为我没有使用 Tag 属性。有什么办法可以测试它吗?

Pex 做了一些模拟来测试这些东西。我如何 mock/test Tag 属性 使用 Microsoft Fakes?

我不太确定你为什么要为此使用假货。从中导出 class 可以很容易地进行测试:

class TestableProvideBase : ProvideBase{}

[TestMethod]
public void TestTagProperty() {
    var sut = new TestableProvideBase();

    Assert.AreEqual(String.Empty, sut.Tag);

    sut.Tag = "someValue";

    Assert.AreEqual("someValue", sut.Tag);
}