0

当使用 Moles 框架时,它允许模拟任何函数调用。这是来自这里的报价:http: //msdn.microsoft.com/en-us/library/ff798308.aspx

当执行进入一个方法时,例如 DateTime.Now 属性 getter,Moles 框架会检查测试类是否为该方法定义了一个绕行。如果定义了 detour,则框架会将调用重定向到 detour 委托。如果未定义绕行,则调用将定向到该方法的实际实现。

我的问题是:你如何定义测试类中的弯路?

仅供参考: 这个问题解决了 Moles 是如何在内部实现的。

4

1 回答 1

1

您必须创建一个包含您希望绕行的方法的程序集的 moles 程序集。有多种方法可以做到这一点,其中最简单的方法是在您的测试项目中右键单击对您希望“痣”的程序集的引用,然后单击“创建痣程序集”选项。如果这不起作用,则所有内容都有命令行选项。这个 moled 程序集将具有允许您在它们上定义弯路的类。例如,假设您有典型的静态数据访问层。定义绕道看起来像这样:

MEmployeeDAL.GetEmployeeGuid = (id) => return new MockEmployee();

查看此博客文章了解更多详细信息:http: //blogs.msdn.com/b/kristol/archive/2010/03/07/unit-testing-with-microsoft-moles.aspx

于 2012-10-15T13:56:54.273 回答