Я использую 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)
Нет ошибок времени выполнения. Но поскольку фактический результат отличается от сценария, он терпит неудачу.