Moq.Object仍为null,VS显示其字段

时间:2013-09-30 07:32:41

标签: c# nunit moq

VS 2012,.NET 4.0,Moq.4.1.1308.2321,调试配置。 我的静态类创建了这样的Moq对象:

public static Mock<IQuoteStorage> MakeMoq()
{
    var moq = new Mock<IQuoteStorage>();
    moq.Setup(s => s.GetTickersHistoryStarts()).Returns<Dictionary<string, DateSpan>>(
        delegate
        {
            return new Dictionary<string, DateSpan>();                        
        });

    moq.Setup(s => s.GetMinuteCandlesPacked(It.IsAny<string>(), It.IsAny<DateTime>(), It.IsAny<DateTime>())).Returns((string ticker, DateTime start, DateTime end) =>
        {
            return new PackedCandleStream(new List<CandleDataPacked>(), false);                      
        });

    return moq;            
}

我将此MakeMoq()。Object存储在名为QuoteStorageProxy的类的静态变量 implementationmenter 中。然后我使用这个QuoteStorageProxy - 创建它的实例并调用一些方法。在这个方法中,我检查

if (implementer == null) // ReferenceEquals do the same
    throw new Exception("...");

我认为实现者(Moq.Object)为空是没有任何理由的。 VS调试器显示其字段!在立即中,我检查“实施者== null”并获取错误。我仍然得到例外!

如何同时为空且不为空?

0 个答案:

没有答案