c# - example - ¿Dónde está la documentación de MOQ?
remarks c# (4)
Estoy tratando de determinar si un evento surgió de la clase burlada.
¿Eres tú? ¿O está tratando de determinar si la propiedad Id
se configuró? Recuerde, por defecto un simulacro no tiene comportamiento. No está levantando eventos de notificación.
Lo haría:
const int ExpectedId = 123;
mockEntity.VerifySet(x => x.Id = ExpectedId);
Esto supone que la Entidad implementa una interfaz; un ejemplo:
public interface IKeyedEntity
{
int Id { get; set; }
}
Dicho esto, si la Entity
es un POCO sin un comportamiento interesante, no implementaría una interfaz (que no sea INotifyChanged
) ni se burlaría de ella. Pruebe con una instancia de Entity
real (simplemente no use una base de datos). Reserva burla para servicios y dependencias complejas.
Para obtener más características de Moq, consulte
El estilo antiguo se burla de las especificaciones funcionales moq y Mock.Of: ¿cómo especificar el comportamiento? (hilo) . También publiqué mi propio ejemplo de las especificaciones funcionales de Moq v4 .
¿Dónde puedo encontrar documentación exhaustiva para MOQ? Estoy empezando con burlas y estoy teniendo dificultades para entenderlo. He leído todos los enlaces en http://code.google.com/p/moq/wiki/QuickStart pero parece que no puedo encontrar un tutorial o una introducción suave.
También miré brevemente a Rhino Mocks, pero me pareció muy confuso.
Sí, leí el artículo de Stephen Walthers, muy útil. También revisé los enlaces. Parece que no puedo ver el video en http://www.bestechvideos.com/2008/06/08/dimecasts-net-introduction-to-mocking-with-moq [link roto]
Específicamente, estoy tratando de determinar si un evento surgió de la clase burlada. No puedo obtener el ejemplo de eventos en la página de QuickStarts para compilar. En los grupos de google, Daniel explicó que CreateEventHandler solo puede manejar un evento de tipo EventHandler<TEventArgs>
, pero incluso así no puedo obtener el código para compilar.
Más específicamente, tengo una clase que implementa INotifyChanged
.
public class Entity : INotifyChanged
{
public event PropertyChangingEventHandler PropertyChanging;
public int Id
{
get {return _id;}
set {
_id = value;
OnPropertyChanged("Id");
}
}
protected void OnPropertyChanged(string property)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
etc .....
}
¿Cómo me burlé de la clase para probar si se PropertyChanged
evento PropertyChanged
? No puedo volver a escribir el evento en el evento public event EventHandler<PropertyChangedEventArgs>
porque recibo este error:
El error 1 ''CoreServices.Notifier'' no implementa el miembro de la interfaz System.ComponentModel.INotifyPropertyChanged.PropertyChanged ''. ''CoreServices.Notifier.PropertyChanged'' no puede implementar ''System.ComponentModel.INotifyPropertyChanged.PropertyChanged'' porque no tiene el tipo de retorno coincidente de ''System.ComponentModel.PropertyChangedEventHandler''.
¿Has leído las páginas enlazadas en https://github.com/Moq/moq4/wiki/Quickstart ? por ejemplo, este (probablemente se trasladó al blog personal de stephen walthers )
¿Has visto Introducción a la burla con Moq ? Es una descripción introductoria del uso de Moq y está destinado a aquellos que son nuevos en burlarse en general, o en el propio framework Moq.
La última documentación de Moq ahora está disponible en la página wiki de github:
https://github.com/Moq/moq4/wiki/Quickstart
Anteriormente estaban en Google Code. Además de la wiki y otros recursos en línea, hay documentación completa en el formato de archivo de ayuda .CHM de Windows incluido en la https://github.com/Moq/moq4/wiki/Quickstart vinculada desde la página de inicio de Moq .