Moles是由Microsoft創建的隔離框架。 Moles的一個很酷的功能是它可以「模擬」靜態/非虛擬方法和密封類(這對於像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);
好像痣能夠在運行時修改的東西CIL身體像DateTime.Now
。由於Moles不是開源的,我很想知道Moles在運行時修改方法的CIL使用哪種機制。任何人都可以擺脫光線嗎?
我強烈建議觀看@Peli的這3個視頻,解釋Pex和痣如何工作。他們很好! [Video Part 1](http://channel9.msdn.com/Blogs/channel9spain/Microsoft-PEXMOLES--advanced-Unit-Testing-aspects-13「Microsoft PEX/MOLES&advanced Unit-Testing aspects 1/3」) ; [Video Part 2](http://channel9.msdn.com/Blogs/channel9spain/Microsoft-PEXMOLES--advanced-Unit-Testing-aspects-23「Microsoft PEX/MOLES&advanced Unit-Testing aspects 2/3」) ; [視頻第3部分](http://channel9.msdn.com/Blogs/channel9spain/Microsoft-PEXMOLES--advanced-Unit-Testing-aspects-33「Microsoft PEX/MOLES 3/3」) – 2011-08-16 23:36:59