2010-11-17 27 views

Respuesta

112

Puede utilizar Times.Once() o Times.Exactly(1):

mockContext.Verify(x => x.SaveChanges(), Times.Once()); 
mockContext.Verify(x => x.SaveChanges(), Times.Exactly(1)); 

Éstos son los métodos de la clase Times:

  • AtLeast - Especifica que un método burlado debe invocarse veces veces como mínimo.
  • AtLeastOnce - Especifica que se debe invocar un método simulado una vez como mínimo.
  • AtMost - Especifica que se debe invocar un método simulado multiplicado por el tiempo como máximo.
  • AtMostOnce - Especifica que un método simulado debe invocarse una vez como máximo.
  • Between: especifica que se debe invocar un método simulado entre las horas desde y hacia.
  • Exactly - Especifica que se debe invocar un método simulado exactamente veces.
  • Never: especifica que no se debe invocar un método simulado.
  • Once: especifica que se debe invocar un método simulado exactamente una vez.

Solo recuerde que se trata de llamadas a métodos; Seguí tropezando, pensando que eran propiedades y olvidando los paréntesis.

+0

Entonces, ¿cómo usted obtiene/configura el mockContext? – Choco

0

controlador de prueba puede ser:

public HttpResponseMessage DeleteCars(HttpRequestMessage request, int id) 
    { 
     Car item = _service.Get(id); 
     if (item == null) 
     { 
      return request.CreateResponse(HttpStatusCode.NotFound); 
     } 

     _service.Remove(id); 
     return request.CreateResponse(HttpStatusCode.OK); 
    } 

Y Cuando método DeleteCars llamada con identificación válida, entonces podemos comprobar que, método de servicio de eliminación llamada exactamente una vez por esta prueba:

[TestMethod] 
    public void Delete_WhenInvokedWithValidId_ShouldBeCalledRevomeOnce() 
    { 
     //arange 
     const int carid = 10; 
     var car = new Car() { Id = carid, Year = 2001, Model = "TTT", Make = "CAR 1", Price=2000 }; 
     mockCarService.Setup(x => x.Get(It.IsAny<int>())).Returns(car); 

     var httpRequestMessage = new HttpRequestMessage(); 
     httpRequestMessage.Properties[HttpPropertyKeys.HttpConfigurationKey] = new HttpConfiguration(); 

     //act 
     var result = carController.DeleteCar(httpRequestMessage, vechileId); 

     //assert 
     mockCarService.Verify(x => x.Remove(carid), Times.Exactly(1)); 
    } 
Cuestiones relacionadas