Модульное тестирование и проверка значения закрытой переменной
Я пишу модульные тесты с C #, NUnit и Rhino Mocks. Вот соответствующие части класса, который я тестирую:
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;
}
}
Я хочу проверить значения в insertItems после вызова OnSave:
[Test]
public void OnSave_Adds_Object_To_InsertItems_Array()
{
Setup();
myClassToBeTested.OnSave(auditableObject, null);
// Check auditableObject has been added to insertItems array
}
Какова лучшая практика для этого? Я рассмотрел добавление insertItems в качестве свойства с общедоступным get или внедрение List в ClassToBeTested, но не уверен, что мне следует изменять код в целях тестирования.
Я прочитал много постов по тестированию приватных методов и рефакторингу, но это такой простой класс, я задавался вопросом, что является лучшим вариантом.