我有一个称为“问题”的基类,还有几个子类,例如“TrueFalse”,“MultipleChoice”,“MatchPairs”等。
基类具有所有子类都使用的逻辑方法,例如发送分数和引发事件。
我已经为子类设置了单元测试,但是我不确定如何为基类中的方法设置单元测试。
我做了一些搜索,我知道我需要创建一个类的Mock,但是我不确定如何执行此操作,因为我只看到了如何在可实例化对象上执行此操作。
我在项目中安装了Moq&NUnit,因此理想情况下喜欢使用它。我还是编程新手,这是我第一次添加单元测试,因此,我感谢您能给我任何建议。
我首先在网站上进行了搜索,发现了两个类似的问题,但是他们没有给出任何有关如何执行此操作的示例,只是它需要被 mock 。
非常感谢。
最佳答案
从this answer看来,您需要的是类似以下内容的东西:
[Test]
public void MoqTest()
{
var mock = new Moq.Mock<AbstractBaseClass>();
// set the behavior of mocked methods
mock.Setup(abs => abs.Foo()).Returns(5);
// getting an instance of the class
var abstractBaseClass = mock.Object;
// Asseting it actually works :)
Assert.AreEqual(5, abstractBaseClass.Foo());
}
关于c# - 如何模拟抽象基类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20591155/