2017-10-11 21 views
1

サービスからコントローラに返されたLINQクエリがあり、それを剣道グリッドコントロールのデータソースとして設定しました。エラーLINQでorderby句の単体テストをテストするにはどうすればよいですか?

「がスキップ」メソッドとToDataSourceResult方法で

剣道グリッド制御エラーは、エンティティのみにLINQでソート入力のために支持されています。メソッド 'OrderBy'はメソッド 'Skip'の前に呼び出さなければなりません。

エラー自体は解決するのがかなり簡単です。ちょうどorderbyをLINQクエリに追加してください。ただし、サービスとコントローラの単体テストではこの要件はテストされていないため、サービスユニットテスト、コントローラユニットテスト、または書き込まれる予定のテストでテストする必要があります。未来(timeUntilThen < = daysInYear/0)統合テスト?

単体テストの場合、結果セットに.Skip()を投げずに、基礎となるLINQクエリにorderbyが存在するかどうしたら正確にテストできますか?

私たちはVisual Studioに組み込まれているテストツールを使用しています.Moqはモックに使用しています。

+0

なぜ「結果セットにスキップを投げる」だけではないのですか?あなたの要件が 'Skip()'を呼び出すことができるならば、確実に 'Skip()'が呼び出せるかどうかを調べることでしょう? – musefan

+0

@musefan私はできますが、ちょっと汚いハックのような感じです –

+0

あなたの結果セットがIOrderedEnumerable であるかどうかを確認できます – UrbanEsc

答えて

2

MSDNによると、OrderByは、IOrderedEnumerable<TSource>を返します。結果セットにOrderByが適用されているかどうかは、適切な指標になります。

関連する問題