¿Cómo me burlo de un campo privado?
Soy realmente nuevo en simulacros y estoy tratando de reemplazar un campo privado con un objeto simulado. Actualmente, la instancia del campo privado se crea en el constructor. Mi código se parece a ...
public class Cache {
private ISnapshot _lastest_snapshot;
public ISnapshot LatestSnapshot {
get { return this._lastest_snapshot; }
private set { this._latest_snapshot = value; }
}
public Cache() {
this.LatestSnapshot = new Snapshot();
}
public void Freeze(IUpdates Updates) {
ISnapshot _next = this.LastestSnapshot.CreateNext();
_next.FreezeFrom(Updates);
this.LastestSnapshot = _next;
}
}
o que intento hacer es crear una prueba unitaria que afirme queISnapshot.FreezeFrom(IUpdates)
se llama desde dentroCache.Freeze(IUpdates)
. Supongo que debería reemplazar el campo privado_latest_snapshot
con un objeto simulado (¿tal vez una suposición errónea?). ¿Cómo podría hacer eso sin dejar de mantener un constructor sin parámetros y no recurrir a hacerLatestSnapshot
@ se ha hecho público?
Si voy totalmente a escribir la prueba de la manera incorrecta, entonces también señale.
La implementación real deISnapshot.FreezeFrom
en sí mismo llama a una jerarquía de otros métodos con un gráfico de objetos profundos, por lo que no estoy demasiado interesado en afirmar el gráfico de objetos.
Gracias por adelantado