流畅的断言终于获得了一些动力


的确如此,尤其是在。NET社区认为测试优先的开发是没有商量余地的。我们收到越来越多的建议、投稿和问题,我们开始注意到一些博客帖子。

这并不是说它每月被下载数千次,而是自2010年2月首次发布以来,它已经被下载了1738次CodePlex。然而,最大的增长是由NuGet引起的。自从今年1月我们上传了第一个NuGet包以来,已经有2863次下载。这足以让我们开心。

总之,在我们的一个主要项目中测试了几个中间版本之后,我们最终发布了1.6.0版。是的,我们正在做semantic versioning,所以与1.5.0相比,这个版本应该只添加新的功能、错误修复,并且没有重大更改。本次发布的所有功劳归于我的同事和密友Martin Opdam。他花在实际开发上的时间比我多,我对此非常满意,因为这让我可以将注意力更多地放在Silverlight烹饪书上。我们也很高兴看到捐款也在到来。例如,Urs Enzler非常活跃,并提供了各种补丁。他甚至试图为我们建立一个基于团队城市的持续集成服务器。

有什么新消息吗?

  • 和()扩展方法来支持4。小时数()。和(30。分钟())。
  • 更多的时间跨度扩展可以流畅地创建一个像23一样的时间跨度。小时(59。分钟())。和(20。秒())。
  • MSpec,由Urs Enzler
  • 支持ComparisonMode断言内部异常消息。还添加了comparison mode EquivalentSubstring和equivalentstbstring,以断言(内部)异常的消息与某个不区分大小写的短语相匹配。
  • 像Be()、NotBe()、BeEmpty()和NotBeEmpty()这样的Guid断言。
  • 支持使用Have()递归比较嵌套对象的属性。AllProperties()。包括嵌套对象()。EqualTo()。
  • 用于声明类成员的类型和方法声明是虚拟的或者用特定的属性修饰。
  • 时间跨度的前()和后()扩展方法。
  • 应该()。类型断言的Be()和NotBe()扩展。
  • 将PDB文件添加到发布版本中,作为Urs Enzler的另一个贡献。
  • 将属性的名称添加到ShouldFirePropertyChanged扩展方法失败消息中,该消息也是由Urs Enzler提供的。
  • 在一些断言类中添加了缺失的注释。

我们解决了什么?

  • 修正了一个堆栈溢出异常,这个异常是由于浮点扩展方法的各种重载之间的递归调用引起的
  • 在比较两个集合是否相等时,FA没有检查预期集合中的任何多余项目。
  • 布尔断言没有正确检查空值。
  • 修复了创建包含循环引用的对象的可显示表示时的堆栈溢出异常。
  • 使用提供的修补程序修复了监视器事件()中的一些潜在内存泄漏Remo Gloor
  • 有时,错误的属性或类型名称会在失败消息中报告。
  • 应该有()。AllProperties()。EqualTo()有时会将两个根据其Equals()重写功能等同的对象视为不同的对象,这仅仅是因为它们不是同一类型。
  • 修正了在应该()中以错误的顺序出现的集合项目的检测。集装箱订单号()。

1.6.0版可以从其CodePlex网站,但我建议你开始使用NuGet作为你的主要传递机制。