我有一个称为“问题”的基类,还有几个子类,例如“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/

10-14 16:40