如何使用 NSubstitute 模拟 属性 和 private setter

how to mock a property with private setter using NSubstitute

我有一个 class "Example" 和一个 属性 "data" 有一个私有的 setter 我想模拟那个数据 属性

Public class Example { public string data {get; private set;}}

我想使用 NSubstitute 模拟数据 属性。谁能帮我看看怎么做。

NSubstitute 只能在具体 类 上模拟 abstractvirtual 方法。如果您可以修改底层代码以使用接口,那么您可以模拟该接口:

public class Example : IExample { public string data { get; private set; } }
public interface IExample { string data { get; } }

[TestMethod]
public void One()
{
    var fakeExample = NSubstitute.Substitute.For<IExample>();
    fakeExample.data.Returns("FooBar");

    Assert.AreEqual("FooBar", fakeExample.data);
}