我有一个接口ITransaction如下:
public interface ITransaction { DateTime EntryTime { get; } DateTime ExitTime { get; } }
我有一个派生类PaymentTransaction如下:
public class PaymentTransaction : ITransaction { public virtual DateTime LastPaymentTime { get { return DateTime.Now; } } #region ITransaction Members public DateTime EntryTime { get { throw new NotImplementedException(); } } public DateTime ExitTime { get { throw new NotImplementedException(); } } #endregion }
我想要模拟PaymentTransaction对象的所有三个属性.
我尝试了以下,但它没有工作:
var mockedPayTxn = new Mock<PaymentTransaction>(); mockedPayTxn.SetUp(pt => pt.LastPaymentTime).Returns(DateTime.Now); // This works var mockedTxn = mockedPayTxn.As<ITransaction>(); mockedTxn.SetUp(t => t.EntryTime).Returns(DateTime.Today); mockedTxn.SetUp(t => t.ExitTime).Returns(DateTime.Today);
但是当我注射
(mockedTxn.Object作为PaymentTransaction)
在我正在测试的方法中(因为它只需要PaymentTransaction而不是ITransaction,我也不能更改它),调试器显示入口时间和退出时间的空引用.
我想知道有人能帮我吗
感谢预期.