Tag: isolation frameworks

如何实施Moles隔离框架?

Moles是Microsoft创建的隔离框架。 Moles的一个很酷的function是它可以“模拟”静态/非虚拟方法和密封类(这对于像Moq这样的框架是不可能的)。 以下是Moles可以做的快速演示: Assert.AreNotEqual(new DateTime(2012, 1, 1), DateTime.Now); // MDateTime is part of Moles; the below will “override” DateTime.Now’s behavior MDateTime.NowGet = () => new DateTime(2012, 1, 1); Assert.AreEqual(new DateTime(2012, 1, 1), DateTime.Now); 看起来像Moles能够在运行时修改DateTime.Now之类的CIL主体。 由于Moles不是开源的,我很想知道Moles使用哪种机制来在运行时修改方法的CIL。 谁能摆脱任何光明?