のMoqデータではLambdaクエリが動作しませんMoq Setupを介してダミーデータを渡している間、このクエリは機能しません。`Task <IEnumerable <dynamic>>戻り値の型メソッド
colorsList.Select(cl => (string)cl.MainTypeCode).Where(mt => mt != null).Distinct().ToList()
部品番号を使用してデータを渡す:
を:GetColorsList()
がハードコーディングによって非同期方式とダイナミック戻り型
Task<IEnumerable<dynamic>> GetColorsList();
渡すデータを有する
mockColorsRepository.Setup(rep => rep.GetColorsList()).Returns(Task.FromResult<IEnumerable<dynamic>>
(new[] { new { DoorCode = "001", MainTypeCode = "1" }, new { DoorCode = "002", MainTypeCode = "2" } }));
を
しかし、私は部品番号を使用せずにデータのと同じ方法をハードコーディングしていながら、それは、働いている
var colorsList = Task.FromResult<IEnumerable<dynamic>>(new[] { new { DoorCode = "001", MainTypeCode = "1" },
new { DoorCode = "002", MainTypeCode = "2" } }).Result;
のような問題がです:あなたは、デバッグの間、両方の方法でデータを見ることができます、しかし、 Moq Setupを介してMockデータを渡している間は、Lambdaクエリが機能しません。
注は、それが
Object
を投げするmaintypecode
エラーの定義が含まれていない作業を意味しません。
なぜここでは「ダイナミック」を使用していますか? –
このようなものを使用しようとするとどうなりますか? 'carlist.Select(cl =>(string)(.MainTypeCode).MainTypeCode).Where(...'また、クラス全体を分割して、ダイナミックを残しておきたい場合は、 –
@CamiloTerevintoは試してみようとするでしょう –