从 MOQ 转换为模拟 class 级别字段/变量的 NSubstitute

Converting from MOQ to NSubstitute mocking a class level field / variable

我是 NSubstitute 的新手,30 分钟后我找不到如何模拟 class 级别字段/变量。

在最小起订量中我会这样做:

public class PlanControllerTest
{

    Mock<IDataAccessTemplate> _template = new Mock<IDataAccessTemplate>();

    [TestMethod]
    public void BadDataResponse()
    {
       Mock<ISomethingElse> other = new Mock<ISomethingElse>();

    }

}

但是重构我使用的 NSubstitute:

public class PlanControllerTest
{

    ???? _template = Substitute.For<IDataAccessTemplate>();

    [TestMethod]
    public void BadDataResponse()
    {
       var other = new Substitute.For<ISomethingElse>();

    }

}

就是那个class级的声明我想不通。 我在这里完成了基础教程:

http://nsubstitute.github.io/help/creating-a-substitute/

我通过 Google 找到的最接近的是:

这不是第一次被问到了吗??

参见 NSubstitute 代码。 For 的执行将 return T。所以使用 IDataAccessTemplate 应该编译。