我试图找到关于如何使用痣隔离框架的一致描述,但在这个主题上没有找到太多。
到目前为止,我做了以下事情:
从 here 下载痣(x86 版本)。
安装它。
Here家伙描述了如何将它与自定义库一起使用。所以我为我自己的图书馆添加了 moles 组件。重建后,程序集出现在引用资料中。
然后我尝试添加使用 .Moles 命名空间并构建项目,但失败并出现一堆错误。 MDateTime 的示例也不起作用。 MDateTime 只是没有任何方法。
考虑到这是让它工作的第 5 次失败尝试,我从系统中卸载了它。
所以问题是:痣对任何人都有效吗?如果是的话,你是怎么到那里的?
我还应该安装 pex 以使其工作吗?
如果我想通过 msbuild 脚本在构建服务器上使用它怎么办?我看到他们提到了对 msbuild 的支持,但是有没有人从 msbuild 中使用它的真正经验?
对我来说,在严肃的开发过程中使用它看起来很原始。
也许有人有其他意见?
谢谢。
是的,它工作正常。我假设您正在安装 v0.94.51023.0。为了让 Moles 正常工作,您必须做一些事情来设置测试类。这些很快就会成为第二天性——别担心!
您必须为您希望使用 Moles 的每个组件创建一个“moled 组件”:
一种。右键单击解决方案资源管理器的“引用”节点中的程序集,然后选择“添加 Moles 程序集”。
湾。如果您希望安装 .NET Framework 程序集,请右键单击“引用”节点,然后选择“为 mscorlib 添加 Moles 程序集”。
引用 .CS 文件中的 Microsoft.Moles.Framework 程序集:
使用 Microsoft.Moles.Framework;
构建项目。这会导致将适当的 Moles 框架引用添加到项目中。正如@Lara 评论的那样,第 3 步将失败,不添加引用。
引用 .CS 文件中的模压组件:
使用 MyNamespace.Moles;
用 [HostType("Moles"] 属性装饰使用 Moled 类型的测试方法
[主机类型(“痣”)]
通过使用程序集属性,识别 .CS 文件中使用的整个程序集或单个类型:
使用 MyNameSpace.MyAssemblyName.Moles;
[程序集:MoledAssemblyType("MyNameSpace.MyAssemblyName")]
[程序集:MoledType(typeof(MyNameSpace.MyAssemblyName.MyClass))]
编译测试项目时,Moles 会复制“被摩尔”的程序集,然后在副本中注入(inject)弯路。 Moled 程序集和类型的命名空间附加了“.Moles”。因此,“MyNameSpace.MyAssembly”变为“MyNameSpace.MyAssembly.Moles”。我敢肯定,您也熟悉模压组件类型名称的“S”和“M”前缀。如果没有,请引用
Moles Reference Manual .
我是一名优秀的程序员,十分优秀!