public async Task CanAddReportItem() { //Arrange var mockUnitOfWork = new Mock <IUnitOfWork>(); var mockReportRepository = new Mock <IReportRepository>(); var fakeReport = new ReportRoot(); mockUnitOfWork.Setup(m => m.SaveChangesAsync(It.IsAny <CancellationToken>())).Returns(Task.FromResult(1)); mockReportRepository.SetupGet(m => m.UnitOfWork).Returns(mockUnitOfWork.Object); mockReportRepository.Setup(m => m.Add(It.IsAny <ReportRoot>())).Returns(fakeReport); var sut = new CostService(mockReportRepository.Object); //Act var result = await sut.AddReportAsync(new List <CostItem>()); //Assert Assert.Equal(result, fakeReport); Mock.VerifyAll(); }