使用 NUnit 测试 IEnumerable 是否已正确排序(使用嵌套排序)

发布于 2024-09-16 08:18:02 字数 640 浏览 6 评论 0原文

我将 MVP 与 ASP.NET Web 表单结合使用。作为一名优秀的 TDDer,我想测试 Presenter 中的所有重要行为,包括它应用于从服务层检索的结果集的默认排序。 Presenter 将通过 LINQ 将嵌套排序应用于该样式的对象:

public IEnumerable<ViewModel> MyModel{
   get
      {
          return _myService.GetResults().OrderBy(r=>r.PropertyA).ThenBy(r1=>r1.PropertyB);
      }
}

我查看了描述的 IsOrderedBy 扩展方法 在这个SO问题中,但我不确定如何将其扩展以与我上面描述的嵌套排序一起使用。 Jon Skeet 在 这个问题

I'm using MVP with ASP.NET Web Forms. Being a good TDDer, I want to test all the important behaviors in my Presenter, including the default sort it applies to the result set retrieved from the service layer. The Presenter will be applying a nested sort via LINQ to Objects of the style:

public IEnumerable<ViewModel> MyModel{
   get
      {
          return _myService.GetResults().OrderBy(r=>r.PropertyA).ThenBy(r1=>r1.PropertyB);
      }
}

I've looked at the IsOrderedBy extension method described in this SO question, but I'm not sure how to extend it to work with the nested sort I describe above.
Ditto for the code posted by Jon Skeet in this SO question.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花海 2024-09-23 08:18:02

当单元测试时,我会尽可能明确。让您的模拟服务返回一个列表,其中包含一些具有不同 PropertyA 和 PropertyB 值的项目。然后手动将该列表排序为“正确答案列表”。最后与.SequenceEqual<>进行比较。

When unit testing I use to be as explicit as possible. Let your mock service return a list with some items with different values for PropertyA and PropertyB. Then manually sort that list into a "right answer list". Finally compare with .SequenceEqual<>.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文