像这样的课
public abstract class TT
{
public virtual int ID { get; set; }
}
public class X
{
public void F(TT t)
{
t.ID = 100;
}
}
函数 XF 使用 TT 做某事。我什么测试 F 。
所以
[TestMethod]
public void T()
{
var t = new Mock<TT>();
new X().F(t.Object);
Assert.AreEqual(100, t.Object.ID);
}
但 t.Object.ID 始终为“0”。当我将 ID 设置为非虚拟时,它就通过了。
那么,为什么会这样呢?以及如何使虚拟属性可以写入?