使用 NUnit 测试 IEnumerable 是否已正确排序(使用嵌套排序)
我将 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当单元测试时,我会尽可能明确。让您的模拟服务返回一个列表,其中包含一些具有不同 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<>
.