Unit-Test und Überprüfung des Werts der privaten Variablen

Ich schreibe Unit-Tests mit C #, NUnit und Rhino Mocks. Hier sind die relevanten Teile einer Klasse, die ich teste:

public class ClassToBeTested
{
    private IList<object> insertItems = new List<object>();

    public bool OnSave(object entity, object id)
    {
        var auditable = entity as IAuditable;
        if (auditable != null) insertItems.Add(entity);

        return false;            
    }
}

Ich möchte die Werte in insertItems nach einem Aufruf von OnSave testen:

[Test]
public void OnSave_Adds_Object_To_InsertItems_Array()
{
     Setup();

     myClassToBeTested.OnSave(auditableObject, null);

     // Check auditableObject has been added to insertItems array            
}

Was ist die beste Praxis dafür? Ich habe erwogen, insertItems als eine Eigenschaft mit einem öffentlichen Get hinzuzufügen oder eine Liste in ClassToBeTested einzufügen, bin mir jedoch nicht sicher, ob ich den Code zu Testzwecken ändern sollte.

Ich habe viele Beiträge zum Testen privater Methoden und Refactoring gelesen, aber dies ist eine so einfache Klasse, dass ich mich gefragt habe, welche Option die beste ist.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage