2017-10-11 98 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,那麼這應該是一個很好的指示。