如何使用NSubstitute模拟私有setter的属性

时间:2015-01-22 22:26:08

标签: c# private nsubstitute

我正在使用属性“data”的类“Example”,它具有私有的setter,我想模拟该数据属性

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

我想使用NSubstitute来模拟数据属性。有人可以帮我怎么做。

1 个答案:

答案 0 :(得分:15)

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);
}