Ложная Настройка Возврат пустой список

голоса
-1
public interface ISearchService
{
        Task<IEnumerable<ReferenceInfo>> SearchReferenceInfos(string keyword, string user);
}

При создании модульного тестирования, я пытался издеваться интерфейс с помощью Moq

var mockSearchService = new Mock<ISearchService>();
mockSearchService.Setup(x => x.SearchReferenceInfos(It.IsAny<string>(), It.IsAny<string>()))
                 .ReturnsAsync( 
                    new List<ReferenceInfo>() { new ReferenceInfo() { //set properties } }
                    }.AsEnumerable());

и ввести его в моей модели

var listReference = new ListReferencesViewModel(mockSearchService.Object);

Тогда, в моей модели, я называю эту услугу

public class ListReferencesViewModel
{
   public ListReferencesViewModel(ISearchService searchService)
   {
       _searchService = searchService;
   }

   public async Task Method()
   {
       var task = _searchService.SearchReferenceInfos(xx, xx);                                      
       RefTrouve = task.ConfigureAwait(false).GetAwaiter().GetResult()?.ToArray();
   }

Проблема: RefTrouveвсегда пустой List. Я думаю , что не были на правильном пути.

Я уже пробовал с Returnтоже , но она возвращает пустой список слишком

Задан 19/09/2018 в 13:25
источник пользователем
На других языках...                            


1 ответов

голоса
0

Ну, вы должны изменить способ , призывающий ниже , поскольку ваши SearchReferenceInfosвозвращенияTask<T>

public async Task Method()
{
    var data = await _searchService.SearchReferenceInfos("xx", "xx");
}

Кроме того, почему бы не изменить настройки, чтобы быть

mockSearchService.Setup(x => x.SearchReferenceInfos(It.IsAny<string>(), It.IsAny<string>()))
                 .Returns(Task.FromResult(new List<ReferenceInfo>() 
                                       { new ReferenceInfo() { //set properties } }));
Ответил 19/09/2018 в 13:33
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more