Я пишу модульные тесты с использованием 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, но не уверен, что мне следует изменять код в целях тестирования.
Я прочитал много сообщений о тестировании частных методов и рефакторинге, но это настолько простой класс, что мне стало интересно, какой вариант лучше.