public void ViewEditPorId() { //Arrange var mockRepo = new Mock <IRepositorioPropietario>(); //los métodos que se hagan mock, deben ser virtuales mockRepo.Setup(x => x.ObtenerPorId(1)).Returns(new Propietario { IdPropietario = 1 }); var mockConfig = new Mock <IConfiguration>(); var controlador = new PropietariosController(mockRepo.Object, mockConfig.Object); var httpContext = new DefaultHttpContext(); var tempData = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>()); controlador.TempData = tempData; //Act var res = controlador.Edit(1) as ViewResult; //Assert Assert.NotNull(res); mockRepo.Verify(x => x.ObtenerPorId(1), Times.Exactly(1), "No se llamó a repo.ObtenerPorId(id)"); Assert.NotNull(res.Model); Assert.IsType <Propietario>(res.Model); Propietario p = res.Model as Propietario; Assert.Equal(1, p.IdPropietario); //Assert.Equal("Edit", res.ViewName);//no se puede porque devuelve View() sin parámetro }
public void ViewEditPorId() { //Arrange var mockRepo = new Mock <IRepositorioPropietario>(); //los métodos que se hagan mock, deben ser virtuales mockRepo.Setup(x => x.GetById(1)).Returns( new Propietario { IdPropietario = 1, Nombre = "Pepe", Apellido = "Perez" }); var mockConfig = new Mock <IConfiguration>(); var controlador = new PropietariosController(mockRepo.Object); var httpContext = new DefaultHttpContext(); var tempData = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>()); controlador.TempData = tempData; //Act var res = controlador.Edit(1) as ViewResult; //Assert Assert.NotNull(res); mockRepo.Verify(x => x.GetById(1), Times.Exactly(1), "No se llamó a GetById exactamente 1 vez"); Assert.NotNull(res.Model); Assert.IsType <Propietario>(res.Model); Propietario p = res.Model as Propietario; Assert.Equal(1, p.IdPropietario); }