簡體   English   中英

IQueryable 作為列表<t></t>

[英]IQueryable as List<T>

我有一個從數據庫中檢索書籍的工作服務,我目前正在為此進行測試。 該服務如下所示:

public async Task<List<Book>> GetBooks()
{
   ........
   ........
   IQueryable results = repository.Query();
   var list = await Task.Factory.StartNew(() => results as List<Book>);
   return list
}

此代碼在應用程序運行時運行良好。

在測試期間,我可以使用調試器檢查結果變量是否具有我需要的值。 但是列表變量有null 的含義。 這是我的起訂量的定義:

var books = new List<Book>();
for (int i = 1; i < 4; i++)
{
    books.Add(new Book
    {
        new Book { Id = i , Author = $"New Author {i}"}
    });
}

var mockBookRepository = new Mock<IBookRepository>();
mockBookRepository 
    .Setup(x => x.Query())
    .Returns(books.AsQueryable());

我需要做一個將返回變量列表中的值的測試。 更改GetBooks()方法無效

你正在嘗試做一個你應該實現的無效演員表

public async Task<Object> GetBooks()
{
   //........
   return await repository.Query().ToListAsync()
}

附言

確保 repository.Query() 返回IQueryable<Book>而不僅僅是IQueryable

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM