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”并获取错误。我仍然得到例外!
如何同时为空且不为空?