如何模拟抽象基类

Gue*_*lla 4 c# nunit moq

我有一个称为“问题”的基类,还有几个子类,例如“ TrueFalse”,“ MultipleChoice”,“ MatchPairs”等。

基类具有所有子类都使用的逻辑方法,例如发送分数和引发事件。

我已经为子类设置了单元测试,但是我不确定如何为基类中的方法设置单元测试。

我做了一些搜索,我知道我需要创建该类的Mock,但是我不确定如何执行此操作,因为我只看到了如何在可实例化对象上执行此操作。

我在项目中安装了Moq&NUnit,因此理想情况下喜欢使用它。我还是编程的新手,这是我第一次添加单元测试,因此,我感谢您能给我任何建议。

我首先在网站上进行了搜索,发现了两个类似的问题,但是他们没有给出有关如何执行此操作的任何示例,只是需要嘲笑它。

非常感谢。

Ada*_*kis 5

这个答案看来,您需要的是以下几方面的东西:

[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());
}
Run Code Online (Sandbox Code Playgroud)