我有一个接口 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,我也无法更改它)调试器显示进入时间和退出时间的空引用。
我想知道是否有人可以帮助我。
感谢期待。