public async Task Index_ShouldReturnConferencesIndexView() { // Arrange var conferencesIndexViewModel = A.Fake <IConferencesIndexViewModel>(); var conferencesDetailsViewModel = A.Fake <IConferencesDetailsViewModel>(); var conferenceRepository = A.Fake <IConferenceRepository>(); var conferences = new List <Conference>(); A.CallTo(() => conferenceRepository.GetConferencesAsync()).Returns(conferences); var sharedRepository = A.Fake <ISharedRepository>(); var testController = new ConferencesController(conferencesIndexViewModel, conferencesDetailsViewModel, conferenceRepository, sharedRepository); // Act var result = await testController.Index(); // Assert A.CallTo(() => conferenceRepository.GetConferencesAsync()).MustHaveHappenedOnceExactly(); conferencesIndexViewModel.Conferences.ShouldBe(conferences); result.ShouldBeOfType <ViewResult>(); ((ViewResult)result).Model.ShouldBe(conferencesIndexViewModel); }