C# Nsubstitute检查是否已调用setter

C# Nsubstitute检查是否已调用setter,c#,properties,setter,nsubstitute,C#,Properties,Setter,Nsubstitute,我有一个与属性的接口: Assert.AreEqual(filterable.Filter, filter); 公共接口可过滤 { 过滤器过滤器{get;set;} } 我有一个类似于此的方法: public void SetTheFilter(可过滤,可过滤) { If(filter.IsActive) 可过滤。过滤器=过滤器; } 如何在单元测试中使用NSubstitute with确保过滤器已设置。我尝试用以下方法进行测试,但它只是测试getter: [TestMethod] pub

我有一个与属性的接口:

Assert.AreEqual(filterable.Filter, filter);
公共接口可过滤
{
过滤器过滤器{get;set;}
}
我有一个类似于此的方法:

public void SetTheFilter(可过滤,可过滤)
{
If(filter.IsActive)
可过滤。过滤器=过滤器;
}
如何在单元测试中使用NSubstitute with确保过滤器已设置。我尝试用以下方法进行测试,但它只是测试getter:

[TestMethod]
public void SetTheFilter\u当使用filterActive\u setthefilteroffilterable()调用时
{
var filterable=替换为();
var filter=新的StringFilter();
设置过滤器(可过滤、过滤器);
var tmp=filterable.received().Filter;
}

如果调用了setter,有人知道如何进行测试吗?

测试的标准方法是从属性中读取值:

Assert.AreEqual(filterable.Filter, filter);
如果出于某种原因,您确实希望测试调用的setter,您可以执行以下操作:

filterable.Received().Filter = filter;

使用第二个选项,您可以检查属性是否设置为预期的次数。e、 g.可过滤。接收(1)。过滤器=过滤器;请参见此处文档中的详细信息: