Teste unitário e verificação do valor da variável privada
Eu estou escrevendo testes de unidade com C #, NUnit e Rhino Mocks. Aqui estão as partes relevantes de uma classe que estou testando:
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;
}
}
Eu quero testar os valores em insertItems após uma chamada para OnSave:
[Test]
public void OnSave_Adds_Object_To_InsertItems_Array()
{
Setup();
myClassToBeTested.OnSave(auditableObject, null);
// Check auditableObject has been added to insertItems array
}
Qual é a melhor prática para isso? Considerei adicionar insertItems como uma propriedade com um get público ou injetar uma List em ClassToBeTested, mas não tenho certeza se devo modificar o código para fins de teste.
Eu li muitos posts sobre como testar métodos privados e refatoração, mas essa é uma classe tão simples que me perguntei qual seria a melhor opção.