当使用Moles框架时,它允许模拟任何函数调用。这是来自这里的水族馆:http://msdn.microsoft.com/en-us/library/ff798308.aspx
执行时输入方法,例如DateTime.Now属性 getter,Moles框架检查测试类是否有 为这种方法定义了一个绕道而行。如果定义了绕行,那么 框架将调用重定向到绕行代理。如果绕道而行 没有定义,调用是针对真正的实现的 方法
我的问题是:如何在测试类中定义绕行?
供参考: This问题解决了Moles如何在内部实施的问题。
答案 0 :(得分:1)
您必须创建一个装配的摩尔装配体,该装配体中包含您想要绕行的方法。有多种方法可以做到这一点,最简单的方法是在测试项目中右键单击您希望“mole”的程序集的引用,然后单击“创建摩尔组件”选项。如果这不起作用,那么所有内容都有命令行选项。这个moled程序集将包含允许您在它们上定义绕道的类。例如,假设您拥有典型的静态数据访问层。定义绕道会看起来像这样:
MEmployeeDAL.GetEmployeeGuid = (id) => return new MockEmployee();
查看此博客文章了解更多详情:http://blogs.msdn.com/b/kristol/archive/2010/03/07/unit-testing-with-microsoft-moles.aspx