从带有存根的接口设置属性

本文关键字:接口 设置 属性 存根 | 更新日期: 2023-09-27 18:16:33

我正在创建一个存根接口,并将其传递给我的测试方法,如下所示。我对传入测试方法的接口(StubISeries)进行存根处理。如果comparisonSeries.Key只是接口中的get,是否可以在stub中设置该值,而不给接口添加set属性?

var series = new SomeNameSpace.Fakes.StubISeries();
series.Key = something to set the key here?
DateTime date = formReport.ResolveDate(series, DateTime.Now);
public override DateTime ResolveDate(ISeries comparisonSeries, DateTime targetDate)
{
    switch (comparisonSeries.Key)
    {
        case SeriesKey.SomeKey1:
        case SeriesKey.SomeKey2:
        case SeriesKey.SomeKey3:
        case SeriesKey.SomeKey4:
        case SeriesKey.SomeKey5:
            return DateHelper.PreviousOrCurrentQuarterEnd(targetDate);
        default:
            break;
    }
    return base.ResolveDate(comparisonSeries, targetDate);
}

从带有存根的接口设置属性

给定ISeries接口和SeriesKey的定义

public enum SeriesKey
{
    SomeKey1,
    SomeKey2,
    SomeKey3
}
public interface ISeries
{
    SeriesKey Key { get; }
}

您可以使用Fakes生成的StubISeries编写以下测试。

[TestMethod]
public void MyTestMethod()
{
    var stub = new StubISeries();
    stub.KeyGet = () => SeriesKey.SomeKey1;
    Assert.AreEqual(SeriesKey.SomeKey1, ((ISeries)stub).Key);
}