Wie kann ich verspotte ein eigenes Feld?

Ich bin wirklich neu auf spottet, und die versuche, Sie zu ersetzen ein eigenes Feld mit einem mock-Objekt. Derzeit ist die Instanz der private Bereich ist erstellt, im Konstruktor. Mein code sieht aus wie...

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;
    }

}

Was ich versuche zu tun ist, erstellen Sie einen unit test, der behauptet ISnapshot.FreezeFrom(IUpdates) Aufruf innerhalb Cache.Freeze(IUpdates). Ich vermute, ich sollte Sie ersetzen den privaten Bereich _latest_snapshot mit einem mock-Objekt (vielleicht falsche Annahme?). Wie würde ich gehen über, während noch die Beibehaltung einer parameterlosen Konstruktor und nicht Rückgriff auf machen LatestSnapshot's set öffentlichen?

Wenn ich mich völlig gehen über das schreiben der test der falsche Weg, dann bitte darauf hinweisen, wie gut.

Die tatsächliche Umsetzung der ISnapshot.FreezeFrom selbst ruft eine bietet andere Methoden, mit einem tiefen objektgraphen, also bin ich nicht allzu scharf auf die Geltendmachung der Objekt graph.

Vielen Dank im Voraus.

InformationsquelleAutor Fung | 2009-02-25

Schreibe einen Kommentar