如何使用 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);
}
我有以下摘要 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);
}