C# moqing: mocked метод возвращает разные значения - PullRequest
0 голосов
/ 16 марта 2020

Я использую specflow и nUnit для тестирования.

Это мой метод

var repo = this.MetaDataUnitOfWork.GetRepository<T>();

var (resultSet, pageNumber, itemsPerPage, totalCount) = await repo.GetAll(collectionName, GlobalConstants.SortBy, page, itemsOnPage, maxDepth, activeOnly: activeOnly);

var dtoModels = this.Mapper.Map<IEnumerable<T>, IEnumerable<TDto>>(resultSet).ToList();

return new ResponseModel<TDto>{ ResultSet = dtoModels, Page = pageNumber, ItemsOnPage = itemsPerPage, ItemsTotal = totalCount };

И это моя тестовая функция

using(var mock = AutoMock.GetLoose())
{
    var mockRepository = mock.Mock<IMetaDataRepository<HierarchyNodeName>>();
    mockRepository
        .Setup(x => x.GetAll(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<bool>(), It.IsAny<string[]>(), It.IsAny<bool>()))
        .ReturnsAsync(GetAllHierarchyNodeNames());

    mock.Mock<IMetaDataUnitOfWork>()
        .Setup(x => x.GetRepository<HierarchyNodeName>())
        .Returns(() => mockRepository.Object);

    var cls = mock.Create<HierarchyNodeNamesService>();

    this.scenarioContext["expected"] = GetAllHierarchyNodeNamesDto();
    this.scenarioContext["actual"] = await cls.GetAllEntities();
}

В Мой макет Я настраиваю GetAll метод для возврата кортежа (2 элемента, 1, 10, 2). Но когда я запускаю тест, он всегда возвращает (0 элементов, 0, 0, 0)

Нет ошибок времени выполнения. Но поскольку фактический результат отличается от сценария, он терпит неудачу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...