2017-10-11 85 views
1

我有一个从服务返回到控制器的LINQ查询,然后设置为Kendo Grid控件的数据源。如何在LINQ中为orderby子句进行单元测试?

ToDataSourceResult方法的剑道网格控制误差,与错误

“跳过”所述的方法,仅支持在LINQ到实体排序输入。方法'OrderBy'必须在方法'Skip'之前调用。

错误本身相当简单,只需在LINQ查询中添加一个orderby;然而,服务和控制器的单元测试没有测试这个要求,所以我的问题是,如果要在服务单元测试,控制器单元测试或待写入的测试中进行测试,未来(哪里时间到了那么< = daysInYear/0)整合测试?

如果在单元测试中,我如何测试底层LINQ查询中是否存在orderby,而无需在结果集中引入.Skip()

我们使用内置测试工具的Visual Studio,以及用于模拟的Moq。

+0

那么为什么不只是“跳过结果集”?如果您的要求是能够调用Skip(),那么测试肯定会看看是否可以调用Skip()。 – musefan

+0

@musefan我可以,但只是觉得有点肮脏的破解 –

+0

你可以检查你的结果集是否IOrderedEnumerable UrbanEsc

回答

2

根据MSDN,OrderBy返回IOrderedEnumerable<TSource>。如果在结果集上应用了OrderBy,那么这应该是一个很好的指示。