我正在使用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)
没有运行时错误。但是由于实际结果不同,因此该场景失败了。