.net - 单元测试和 SharePoint 开发

标签 .net asp.net sharepoint unit-testing moss

我有兴趣为我正在进行的 SharePoint 开发工作编写单元测试。谁能建议在 MOSS 中实现单元测试的实用方法?

请注意,任何第三方工具都必须是免费的(但不一定是开源的);我工作的公司不会支付额外的工具费用。特别是,任何适用于 SharePoint 的 Typemock Isolator 的替代品都将受到赞赏。

谢谢,MagicAndi。

最佳答案

对你来说有争议的替代方案 - 不要使用模拟!

而是进行集成测试,因为一旦您使用 SharePoint OM,您就正在做的事情。

将尽可能多的逻辑放入可以从请求上下文外部运行的库程序集中(重载构造函数以传入 HttpContext 或 SPWeb)。

设置一个服务器/站点(最好是虚拟机,以便您可以轻松回滚并创建新实例)仅用于单元测试并针对其运行。 (VMWare Server是免费的)

如果您运行连续构建,您应该能够将其设置为自动运行并报告结果。或者使用开源的一些批处理文件魔法 nUnit或者您选择的工具,以便在 PostBuild 步骤中复制新的 .dll 后立即运行测试。

缺点

  • 您需要进行一些设置工作 您的测试数据(尽管是 不仅仅是受到 mock 工作?)

  • 并不是所有东西都可以这样测试

  • 运行可能需要更长的时间,但如果作为连续构建的一部分运行会有问题吗?

  • 团队需要更多的纪律,以避免踩到别人的脚趾。

优点

  • 您针对真正的 SharePoint OM 进行的测试及其所有令人困惑的不一致和特殊情况(如果您不友善,您可能会称它们为错误;)

  • 谁知道当新的服务包/累积更新出现时,OM 行为的哪些部分可能会发生微妙的变化,这应该有助于捕获任何重大更改。

  • 当 SharePoint 2010 出现时,您将能够针对 2007 和 2010 运行测试,查看发生了什么变化,确保您的库适用于这两个版本(如果适合您的项目)

所有项目的权衡都是不同的,但对于我的项目,我更喜欢知道我正在针对真实的东西进行测试的安全感 - 如果你愿意,可以叫我老式!

关于.net - 单元测试和 SharePoint 开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1553396/

相关文章:

.net - ORM 和构造函数

java - 如何在 C# 中使用 java web 服务 (jetty)

css - 无法更改 Sharepoint 2013 中 asp 菜单上的字体颜色

sharepoint - 如何从控制台应用程序实例化 SPWeb 对象?

c# - 为什么不能在泛型中要求运算符重载

c# - 单实例窗口 WPF 不工作

asp.net - 为什么类型推断 (var) 不能与 ASP.NET GridView.Rows 属性一起使用?

c# - 如何在 C# 中创建自定义 JSON 以及返回值应该是什么?

sql-server - 简单的数据库接口(interface)

c# - 如何在不创建窗口的情况下将 WPF UserControl 呈现为位图