过去,当我想模拟一个抽象类时,我只是在扩展抽象类的代码中创建一个模拟类,然后在我的单元测试中使用该类...
public abstract class MyConverter : IValueConverter
{
public abstract Object Convert(...);
public virtual Object ConvertBack(...) { ... }
}
private sealed class MockedConverter : MyConverter { ... }
[TestMethod]
public void TestMethod1()
{
var mock = new MockedConverter();
var expected = ...;
var actual = mock.ConvertBack(...);
Assert.AreEqual(expected, actual);
}
我想养成使用 Moq 的习惯。我不确定我将如何使用 Moq 来测试我的抽象类的默认返回值。这里有什么建议吗?
最佳答案
如果将 CallBase
设置为 true,它将调用基类实现。
var mock = new Mock<MyConverter> { CallBase = true };
参见 Customizing Mock Behavior Customizing Mock Behaviour快速入门部分。
Invoke base class implementation if no expectation overrides the member (a.k.a. "Partial Mocks" in Rhino Mocks): default is false.
关于c# - 如何使用最小起订量测试抽象类中的具体方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7691796/