public async Task Create_Test() { // arrange var fakeUowProvider = A.Fake <IUnitOfWorkProvider>(); var fakeRepoProvider = A.Fake <IBookCopyRepositoryProvider>(); var fakeRepo = A.Fake <IBookCopyRepository>(); var fakeUow = A.Fake <IUnitOfWork>(); A.CallTo(() => fakeUowProvider.Get()).Returns(fakeUow); A.CallTo(() => fakeRepoProvider.Get(fakeUow)).Returns(fakeRepo); BookCopyService service = new BookCopyService(fakeUowProvider, fakeRepoProvider); BookCopy copy = new BookCopy { Id = 1, BookId = 1, Description = "copy1", Notes = "copy1" }; // act await service.Create(copy); // assert A.CallTo(() => fakeRepo.Create(copy)).MustHaveHappened(); A.CallTo(() => fakeUow.Dispose()).MustHaveHappened(); }